我运行了一个渗透测试应用程序,它发现了大量的 XSS 错误,具体来说,我犯了通过查询字符串将未经验证的数据回显到浏览器的错误。
具体来说,运行它会将 javascript 放入我的页面。 http://www.mywebsite.com/search.php?q=%00 '" [ScRiPt]%20%0a%0d>alert(426177032569)%3B[/ScRiPt]。
谢天谢地,我不允许用户将数据保存到数据库并显示回其他用户,所以我认为人们只能用这个问题破解自己,但我仍然想修复它。
建议这样做:
echo htmlentities($_POST[‘input’], ENT_QUOTES, ‘UTF-8’);
但目前我需要尽快修复这个问题,然后根据具体情况进行修复。我在网站的每个页面上都有一个头文件,我知道它的格式不好,但是如果我这样做会发生什么:
array_walk($_POST, 'htmlentities');
我也需要为 COOKIE 和 GET 做这件事。我从不使用_REQUEST。
谢谢