Ruby on rails 如何清理rails中的属性值

Ruby on rails 如何清理rails中的属性值,ruby-on-rails,xss,sanitize,html-escape-characters,Ruby On Rails,Xss,Sanitize,Html Escape Characters,在rails中清理属性值的最佳方法是什么?代码如下所示: <img alt="<%= h 'untrusted-data' %>" src="image-source-here" /> 我特别关心并给予支持 将不受信任的数据插入HTML公共属性之前的属性转义 将不受信任的数据插入JavaScript数据值之前的JavaScript转义 html_转义方法是否足以达到此目的?由于某些原因,我无法在此处使用TagHelper提供的tag方法。使用Rails 2.3.5版

在rails中清理属性值的最佳方法是什么?代码如下所示:

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

我特别关心并给予支持

  • 将不受信任的数据插入HTML公共属性之前的属性转义
  • 将不受信任的数据插入JavaScript数据值之前的JavaScript转义
  • html_转义方法是否足以达到此目的?由于某些原因,我无法在此处使用
    TagHelper
    提供的
    tag
    方法。使用Rails 2.3.5版本。

    是的,已经足够好了。(加上另一个“虽然,但我想这是个打字错误:)

    
    
    h
    将防止
    不受信任的
    包含
    并将其替换为
    ,从而使攻击者无法跳出
    alt
    属性。此外,她也无法利用
    alt
    属性进行攻击,因为该属性中未进行任何解析


    例如,如果它位于
    a
    href
    属性中,则情况会有所不同,在这种情况下,攻击者可以在单击时运行某些javascript代码,即使无法退出该属性。(如
    javascript:alert(/XSSed/);

    请注意,如果在作为事件处理程序的HTML属性中使用不受信任的数据是不够的:是的,这是我试图用
    href
    example.Good解释的那种情况。下面是ruby的HTML属性编码的OWASP实现:哦,这里有一个xss游乐场,有转义示例:for href you have到:a)对放入URL的内容使用URL编码b)确保URL不是以“javascript:”开头的,如果您接受用户的URL-由于编码原因,这很难做到正确,因此最好使用白名单,并确保每个URL都以http://或https://Encoder 在owasp的ruby中。有关html属性,请参见编码。
    <img alt="<%=h untrusted %>" src="img.png" />