我有一个 PHP 函数来检查我的所有 php 文件,因此没有任何攻击可以上传任何脚本。 虽然,我客户的网站太旧了,几天前,我从服务器收到一条消息,上面写着:MYSQL 注入(inject),并且正在尝试使用查询。
系统有PHP版本:5.2.17,并且有正在弃用的mysql_queries...虽然系统的更新太难了..
我试图找到解决方案并检查这些:
- mysql_real_escape_string()
- is_numeric()
- htmlspecialchars(值, ENT_QUOTES)
我不知道这些是否重要!为了避免 SQL 注入(inject),上述任何操作是否有效?
此外,我发现这个是一个很好的解决方案:
使用:PHP的filter_input(..)
攻击是在 $_GET 值中进行的,但没有触及数据库..但是..我看到的查询类似于标识符..
如有任何建议或帮助,我们将不胜感激!
最佳答案
mysql_escape__real_string() 只是防止 SQL 注入(inject)本身所需的一个方法。 htmlspecialchars()是为了防止XSS攻击。
我猜你不能使用任何较新的库或升级 PHP。在这种情况下,id 建议您使用 http://php.net/manual/en/function.override-function.php 实现“安全”mysql_query因为很容易忘记转义查询。
关于php - SQL注入(inject)-通过URL访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52698605/