我已经获得了一个最近使用SQL注入攻击的网站。根据我的收集情况,Havij自动SQL注入器用于将代码插入到URL的查询字符串参数中。
该网站是一个自定义的CMS版本,有点过时了。我认为不可能完全重建。
防止这种情况再次发生的最佳方法是什么?我是一名PHP开发人员,但通常只是在表单上进行验证,或者使用已经内置此功能的系统 - wordpress,codeigniter,drupal等。
感谢任何想法或想法。
由于
答案 0 :(得分:3)
只有一个简单的规则:每个变量(无论来自哪里 - 来自用户,或者它是已经从数据库获得的东西)被放入sql查询应该是之前使用mysql_real_escape_string()
进行了清理。
或者你可以使用准备好的查询(预备语句/占位符),无所谓。
答案 1 :(得分:2)
您可能无法更改所有代码,但也许您可以更改数据库代码。如果是这样,尝试使用PDO和准备好的语句。我建议使用pdo,因为您没有指定数据库类型。如果您使用的是mysql,我认为mysqli还提供了预备语句。
答案 2 :(得分:0)
$ url = filter_var($ url,FILTER_SANITIZE_URL);