如何清理rails中的属性值

时间:2011-12-28 13:06:28

标签: ruby-on-rails xss sanitize html-escape-characters

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

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

我特别关注Rule #2上提供的Rule #3owasp.net XSS prevention cheat sheet.

  
      
  1. 将不受信任的数据插入HTML公共属性之前的属性转义
  2.   
  3. 将不受信任的数据插入JavaScript数据值之前的JavaScript转义
  4.   

html_escape方法是否足够用于此目的?出于某种原因,我无法使用此处tag提供的TagHelper方法。使用Rails 2.3.5版本。

1 个答案:

答案 0 :(得分:3)

是的,这已经足够了。 (与另一个“但我猜这是一个错字:”

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

h会阻止untrusted包含"并将其替换为&quot;,以便攻击者无法退出alt属性。此外,她也无法利用alt属性来利用某些东西,因为它没有进行解析。

例如,如果它位于a的{​​{1}}属性中,则会有所不同,在这种情况下,攻击者在点击时可以运行一些javascript代码,即使不能走出属性。 (如href