params[:id] = 10qqq';alert(111);'
HTML代码
<select id="type" name="type" onchange="window.location.href='/url/ 10qqq';alert(111);'/' + this.options[this.selectedIndex].value"><option value="2">b</option></select>
1:http://example.com/10qqq';alert(111);'
2:改变下拉框的值发动xss攻击
原因:
在调用javascript解析器之前,浏览器会decode ' => '
浏览器只对 javascript(javascript:)或者javascript handler(onclick)中代码进行decode处理
浏览器:
IE发动攻击(' ")
Firefox chrome发动攻击(' ' ")
对策:
转义& => &
rails中用h方法
参考文章:
http://js-quasis-libraries-and-repl.googlecode.com/svn/trunk/safetemplate.html
http://sla.ckers.org/forum/read.php?2,7947,8029