我正在使用MySQL和PHP来完成我正在工作的项目。我创建了单独的用户来执行不同的功能(一个用于运行选择查询,一个用于运行更新查询等)以提供额外的安全层。这样,我认为如果某人确实设法执行注入攻击(这不太可能,因为我使用的是准备好的语句),无论他们能够做什么都将限于最初打算运行的查询类型。这是一个好习惯还是不值得麻烦?
答案 0 :(得分:6)
除了扩展逻辑之外,您还将在该区域中拥有不同的连接和必要的开销。
恕我直言,明智的做法是不在root用户的webapp中进行所有查询,如果数据是 hot ,那么请确保指定的用户没有DROP,DELETE等特权。如果在您的应用程序中有必要,您可以实现软删除。
最后但并非最不重要的是,请确保清理所有GPC并确保在查询中正确引用/转义文件。使用预准备语句可能是一回事,但最终它可以像使用mysql_real_escape_string()或DBAL / ORM提供的任何引用方法一样简单。
答案 1 :(得分:1)
我个人认为值得烦恼,因为编码,测试和部署比较棘手。确保您的软件不受SQL注入的影响。