在rails中清理属性值的最佳方法是什么?代码看起来像这样:
<img alt="<%= h 'untrusted-data' %>" src="image-source-here" />
我特别关注Rule #2上提供的Rule #3和owasp.net XSS prevention cheat sheet.
- 将不受信任的数据插入HTML公共属性之前的属性转义
- 将不受信任的数据插入JavaScript数据值之前的JavaScript转义
醇>
html_escape方法是否足够用于此目的?出于某种原因,我无法使用此处tag
提供的TagHelper
方法。使用Rails 2.3.5版本。
答案 0 :(得分:3)
是的,这已经足够了。 (与另一个“但我猜这是一个错字:”
<img alt="<%=h untrusted %>" src="img.png" />
h
会阻止untrusted
包含"
并将其替换为"
,以便攻击者无法退出alt
属性。此外,她也无法利用alt
属性来利用某些东西,因为它没有进行解析。
例如,如果它位于a
的{{1}}属性中,则会有所不同,在这种情况下,攻击者在点击时可以运行一些javascript代码,即使不能走出属性。 (如href
)