我计划通过使用$变量来阻止SQL注入,并将其路由到一个函数,该函数将扫描$ variable以查找任何sql命令或任何注入尝试。我还将列出人们会使用注入的常见sql命令,以便检测它。
注意:我之前曾问过类似的问题,但这次我有一个理论,我设法思考;)
答案 0 :(得分:3)
防止SQL注入的最简单安全的方法是对任何不受信任的数据使用mysql_real_escape_string()(例如:$ _GET或$ _POST)。它将转义任何特殊字符,因此查询将是安全的。
如果您使用mysqli,请参阅http://www.php.net/manual/en/mysqli.real-escape-string.php
有关SQL注入的更多信息以及如何保护自己免受攻击:http://www.php.net/manual/en/security.database.sql-injection.php
所以,你的计划并不是最好的方法。它不必要地使事情复杂化。
答案 1 :(得分:3)
没有。黑名单将不可避免地给出误报,几乎肯定会给出假阴性。
使用bound parameters并让数据库为您处理。