我不明白,我把我的文件转移到了新的主机上,现在我可以进行SQL注入,即使我使用mysql_escape_string或addslashes。在此之前,我从未获得过SQL注入。怎么了?请帮帮我,我快疯了。
edit:如果我使用",就没有SQL注入,但如果我使用",它会提供SQL注入。我的头很快就会爆炸…
我认为mysql_real_escape_string
是您想要用来保护应用程序免受SQL注入的函数。。。。
还要确保魔术引号关闭…
很难编写将输入转义/净化到可以安全地直接提交到SQL数据库的代码。在与数据库的所有交互中,您真正应该做的是在代码中使用参数化查询。这允许您的数据库确定什么应该被视为"命令",什么应该被认为是"数据",以便在数据中仍然可以看到注入到"数据"中的SQL。
请参阅OWASP关于此主题的精彩讨论。
你可能在旧主机上有不安全的代码,直到你把代码放在新主机上,人们才开始攻击它。