摘自《白帽子讲Web安全》

test
 

python开发框架Django和web2py都选择在View层默认HtmlEncode所有变量,但仍可能出现XSS:

栗子:

test

如果用户输入:

$var = htmlencode("');alert('2");

对浏览器来说,htmlparser会优先于JavaScript Parser执行,所以解析过程是,被HtmlEncode的字符先被解码,然后执行JavaScript事件。

test