摘自《白帽子讲Web安全》
<a href="javascript:alert(1);">test</a>
<IMG src='vbscript:msgbox("XSS")'>
<a href="data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTs8L3NjcmlwdD4=">test</a>
python开发框架Django和web2py都选择在View层默认HtmlEncode所有变量,但仍可能出现XSS:
栗子:
<body>
<a href=# οnclick="alert('$var');">test</a>
</body>
如果用户输入:
$var = htmlencode("');alert('2");
对浏览器来说,htmlparser会优先于JavaScript Parser执行,所以解析过程是,被HtmlEncode的字符先被解码,然后执行JavaScript事件。
<body>
<a href=# οnclick="alert('');alert('2');">test</a>
</body>
转载于:https://blog.51cto.com/maxvision/1889362