我不熟悉 PHP,我们的产品不是用 PHP 编写的。我们使用使用 PHP 为我们的文档创建的供应商。最近我们在 PHP 代码中发现了 XSX 攻击。XSS 攻击是在攻击者访问
vendor.php/%22onmouseover=%22alert%281310%29%22
常规访问就像
vendor.php?param1=val1¶m2=val2
在研究了代码后,我发现了有问题的行:
$SelfURL = $_SERVER['PHP_SELF'];
我已经使用这个很棒的链接PHP_SELF 和 XSS修复了它:
$SelfURL = htmlspecialchars($_SERVER['PHP_SELF'], ENT_QUOTES, "utf-8");
我们已将修复程序发送给供应商并要求修复 PHP。答案让我感到惊讶:供应商声称他们的 PHP 没有任何问题,我们应该在我们的 Apache 服务器上启用 URL 重写规则,该规则不允许访问vendor.php/
.
我试图解释一下,我们没有 URL 重写规则,只有访问他的页面会造成攻击(由于$SelfURL = $_SERVER['PHP_SELF']
)因为我不熟悉 PHP,所以我想重新检查一下:
- 够用
htmlspecialchars
吗? - 我们应该创建 URL 重写规则吗?