这种SQL注入预防在理论上有效吗?


Will this SQL injection prevention work in theory?

我计划通过使用$变量并将其路由到一个函数来防止SQL注入,该函数将扫描$变量以查找任何SQL命令或任何注入尝试。我还将列出人们会使用的常见sql命令,以便检测到它。

注意:我以前问过一个类似的问题,但这次我有一个理论,我设法思考;)

防止SQL注入的最简单和安全的方法是对任何不受信任的数据(例如:$_GET或$_POST)使用mysql_real_escape_string()。它将转义任何特殊字符,因此查询将是安全的。

如果使用mysqli,请参见http://www.php.net/manual/en/mysqli.real-escape-string.php

更多关于SQL注入和如何保护自己的信息:http://www.php.net/manual/en/security.database.sql-injection.php

所以,你的计划不是最好的方法。它不必要地使事情复杂化。

No。黑名单不可避免地会给出假阳性,几乎肯定会给出假阴性。

使用绑定参数,让数据库为您处理。