如何解决如果有str_replace,有没有可能做XSS?
我正在研究跨站脚本 (XSS) 漏洞,这里有一个问题:
如果有 str_replace "
if (isset($_GET["username"])) {
$user = str_replace("<","",$_GET["username"]);
echo "Your name is "."$user";
}
您还能传入 <b onmouSEOver=alert('Ha-Ha-Ha!')>click me!</b>
或 <script>alert('Ha-Ha-Ha')</script>
以便脚本执行吗?
解决方法
未指定字符集,因此可能有一些使用不同编码绕过过滤器的方法。在较旧的浏览器中,可以使用 UTF-7,如下所述:http://michaelthelin.se/security/2014/06/08/web-security-cross-site-scripting-attacks-using-utf-7.html
,使用htmlspecialchars()
方法
- 这个功能你需要什么
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
- 您可以查看 w3schools 处理表 https://www.w3schools.com/php/php_forms.asp
- 也使用 post 方法,它比 get 更安全
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。