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