清理 Rails 中属性值的最佳方法是什么?代码看起来像这样:
<img alt="<%= h 'untrusted-data' %>" src="image-source-here" />
我特别关心Rule #2和 Rule #3给出于 owasp.net XSS prevention cheat sheet.
- Attribute Escape Before Inserting Untrusted Data into HTML Common Attributes
- JavaScript Escape Before Inserting Untrusted Data into JavaScript Data Values
html_escape 方法足以达到目的吗?由于某种原因,我无法在此处使用 TagHelper
提供的 tag
方法。使用Rails 2.3.5版本。
最佳答案
是的,已经足够好了。 (虽然还有一个“,但我想这是一个错字:)
<img alt="<%=h untrusted %>" src="img.png" />
h
会阻止 untrusted
包含 "
并将其替换为 "
,这样攻击者就会无法走出alt
属性。此外,她也无法通过alt
属性利用某些东西,因为其中没有进行解析。
例如,如果它位于 a
的 href
属性中,情况就会有所不同,在这种情况下,攻击者能够在以下情况下运行一些 JavaScript 代码:即使点击了也无法走出属性。 (如javascript:alert(/XSSed/);
)
关于ruby-on-rails - 如何清理 Rails 中的属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8656274/