考虑以下 PHP 脚本(它可以是任何其他语言;为简单起见,我选择了 PHP):
<?php
echo $_SERVER['HTTP_REFERER'];
?>
是否容易受到 XSS 攻击?
当然,我可以使用 curl 向脚本发送请求并将引用者设置为<script>alert(document.cookie)</script>. 但是,至少某些浏览器似乎对引用者进行了编码,因此,例如,如果我将用户从以下 URL 重定向到该脚本:
http://example.com/<script>alert(document.cookie)</script>
浏览器对referer进行编码,结果PHP脚本输出:
http://example.com/%3Cscript%3Ealert(document.cookie)%3C/script%3E
有没有不编码referer的浏览器?如果没有,是否可以通过其他方式加以利用?