我不知道它是否算作XSS,但它会导致错误
我有一个image_tag和:alt
标签是由用户生成的
然而,使用sanitize
/h
/html_escape
对这一点没有帮助(来自OWASP-这里)
';alert(String.fromCharCode(88,83,83))//';alert(String.fromCharCode(88,83,83))//";
alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//--
></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>
在
:alt => (the string above)
图像输出混乱
是否有办法修复这个XSS?
我使用最新的rails,ruby
从Rails 3.2.8到CVE-2012-3464的修复,Rails转义帮助器转义双引号和单引号。
如果你使用的是正确的版本,你应该很好。
>> ERB::Util.h '';alert(String.fromCharCode(88,83,83))//';alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//--></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>'
=> "';alert(String.fromCharCode(88,83,83))//';alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//";alert(String.fromCharCode(88,83,83))//--></SCRIPT>">'><SCRIPT>alert(String.fromCharCode(88,83,83))</SCRIPT>"
(注意:上面原始字符串中的反斜杠需要在那里,以便Ruby正确解析包含单引号的字符串)
你可以通过过滤器" ' and>来解决这个问题,这三个字符就足够了