0

我想知道是否有必要使用不同的 MySQL 用户权限,如果我使用准备好的语句和 PDO?

基本上我想要一个具有 SELECT 且仅 SELECT 权限的用户,以及一个可以使用 INSERT 的用户。

我知道准备好的语句是必须的,但是权限也是如此吗?

4

1 回答 1

0

对于大多数应用程序来说,只读 SQL 注入和读写 SQL 注入之间的区别是微乎其微的。您的数据库通常包含攻击者想要窃取的所有秘密,因此能够从数据库中读取这些秘密就足以结束游戏。

拥有单独的读取器和写入器将使您的应用程序的活动数据库连接数量增加一倍。这可能会增加您遭受拒绝服务 (DoS) 攻击的风险。此外,它还使应用程序逻辑比它需要的更冗长。

如果您担心 SQL 注入的影响,只需使用准备好的语句。并确保您真正使用的是准备好的语句,而不是“模拟的准备好的语句”。请参阅ircmaxell 的答案,了解为什么模拟的准备好的语句是邪恶的。

于 2018-10-01T20:01:51.587 回答