如何在 PHP 中正确保护 $_GET?

信息安全 php sql注入
2021-08-19 02:19:24

我在一个伙伴工作站点中找到了一个 SQLi。他向上级报告了这件事,他们允许我进行额外的测试并修补网站。在查看该站点后,易受攻击的代码是 $_GET。我只是添加了 intval() 来检查变量是否为整数。我重新运行了 sqlmap、w3af 和其他一些扫描仪。这些洞似乎已经被修补了。这是正确的补丁吗?如果没有,我如何正确保护 PHP 中的 $_GET?

1个回答

它的 $_GET、$_POST、$_REQUEST、$_FILE 甚至 $_SERVER 都没有关系。它的所有用户输入和一个潜在的攻击源。重要的是如何使用用户输入。在 SQL 注入的情况下,将其转换为 intintval()效果很好。但是,您应该将参数化查询与诸如 sqli、adodb 或 pdo 之类的库一起使用。

但 sql 注入只是owasp 前 10名中的一个问题,并且只是CWE 系统跟踪的数千个漏洞类型中的一个问题没有魔杖可以阻止每个漏洞。