2

清理rails中的属性值的最佳方法是什么?代码看起来像这样:

<img alt="<%= h 'untrusted-data' %>" src="image-source-here" />

我特别关注owasp.net XSS 预防备忘单上给出的规则 #2规则 #3 。

  1. 将不受信任的数据插入 HTML 通用属性之前的属性转义
  2. 将不受信任的数据插入 JavaScript 数据值之前的 JavaScript 转义

html_escape 方法是否足以达到目的?由于某种原因,我不能使用这里tag提供的方法TagHelper。使用 Rails 2.3.5 版本。

4

1 回答 1

3

是的,这已经足够好了。(虽然有另一个 " 但我想这是一个错字:)

<img alt="<%=h untrusted %>" src="img.png" />

h将阻止untrusted包含"并替换它,&quot;以使攻击者无法摆脱该alt属性。此外,她也将无法通过该alt属性来利用某些东西,因为它没有进行任何解析。

例如,如果它在 aahref属性中会有所不同,在这种情况下,攻击者即使无法离开该属性,也可以在单击时运行一些 javascript 代码。(喜欢javascript:alert(/XSSed/);

于 2011-12-28T13:19:40.820 回答