4

我在我的变量上使用了 mysql_real_escape_string(),但是查看我的日志,我注意到来自某人的输入流,其中包含如下条目:

${@print(md5(acunetix_wvs_security_test))}

1\" or (sleep(4)+1) limit 1 -- 

等等。他们的一个巨大的名单。

他只是在尝试,什么都没有发生吗?还是仅使用 mysql_real_escape_string() 我的代码不安全?

编辑:我看不到任何损坏,但网站上的大部分输入区域都已尝试过很多次。如果它没有工作一次,他会不会停下来,意识到它是安全的?

4

3 回答 3

9

这些条目来自 Acunetix Web 漏洞扫描(有关更多详细信息,请参见http://www.acunetix.com/vulnerability-scanner/)。

简而言之,这只是一个在您的站点上运行并测试已知安全问题的机器人。至于你的问题,他只是在尝试。即使您的站点存在漏洞,扫描程序也不会尝试破坏任何内容,只需将漏洞报告给测试人员。

也许稍后再次检查日志是个好主意,因为自动扫描可能是某人的自动信息收集,然后他尝试使用从自动扫描中获得的信息手动攻击您的站点。但我不知道您的应用程序有多重要。

编辑:不,扫描仪不会停止。这些扫描仪不是很聪明,不会尝试从以前的结果中学习。他们只通过定义的攻击列表工作,并在他们可以找到的每个输入/参数上尝试它们。

于 2013-01-27T13:28:25.840 回答
0

似乎有人正在使用 acunetix venerability 扫描程序扫描您的站点。你能看到你的数据库数据有什么变化吗?如果是,他就成功了。

该工具非常强大,旨在查找脚本上的大量漏洞。

仅仅依靠 mysql_real_escape_string() 搜索并重新构建站点是不够的。侵入脚本的方法有很多,不仅仅是 mysql 注入。

阅读有关 PHP 和 MYSQL 安全性的更多信息。

于 2013-01-27T13:27:59.423 回答
-2

如果您一直使用mysql_real_escape_string,您应该可以安全地防止 SQL 注入。

请注意,将来mysql_query会被弃用,您不应该再使用它。

于 2013-01-27T13:21:11.070 回答