【问题标题】:Escape URL in railsRails 中的转义 URL
【发布时间】:2011-06-28 10:39:39
【问题描述】:

我有一个评论系统,人们可以在其中与他们的网站一起发表评论。由于 rails 现在默认情况下会避开所有内容,因此我实际上并没有做任何事情来避免 XSS,它几乎可以正常工作。由于某种原因,该 URL 没有被转义。

为了显示用户名,我有一个简单的助手:

def display_name(name, site)
  if !site.blank?
    return link_to(name, site)
  else
    return name
  end
end

但是,如果您将类似 javascript:alert(1) 的内容放入网站字段,它会直接注入页面 - 知道如何逃避吗?

【问题讨论】:

    标签: ruby-on-rails security escaping xss


    【解决方案1】:

    即使您转义了 javascript,恶意用户仍然可以创建指向(例如,删除可能影响用户数据的 URL)的 URL。为什么不在收集时验证 URL?

    validates :attribute, :url => true
    

    我建议使用 Thong Kuah 的 UrlValidator

    【讨论】:

    • 谢谢 - 我想这就是它必须解决的方式。但是,能否请您帮我,如果 url 不是 nil(或空字符串),我如何才能执行验证?
    • 改用这个版本:gist.github.com/1051088。现在你把它称为validates :attribute, :url => { :allow_nil => true, :allow_empty => true }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-20
    • 2011-08-28
    • 1970-01-01
    • 2014-06-07
    • 1970-01-01
    相关资源
    最近更新 更多