针对不同类型的查询使用不同的用户是一种好的实践吗?

3

我正在使用MySQL和PHP进行一个项目的开发。我为不同的功能创建了单独的用户(一个用于运行选择查询,一个用于运行更新查询等),以提供额外的安全层。这样,我认为如果有人试图进行注入攻击(尽管我正在使用预处理语句,这是不太可能的),他们所能做的将仅限于原本应该运行的查询类型。这种做法是否值得推荐?

2个回答

6

除了扩展逻辑外,您还将在该领域拥有不同的连接和必要的开销。

我认为明智的做法是不要使用根用户在Web应用程序中执行所有查询,如果数据非常重要,则确保指定的用户没有DROP、DELETE等权限。如果需要,在应用程序中可以实现软删除。

最后,请确保对所有GPC进行净化,并确保在查询中正确引用/转义文件。使用预处理语句可能是一件事,但最终可以像使用mysql_real_escape_string()或您的DBAL/ORM提供的任何引用方法一样简单。


1

个人认为这并不值得麻烦,因为编码、测试和部署都更加棘手。相反,确保您的软件免受 SQL 注入攻击。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接