我有一个评论系统,人们可以在网站上留下评论。由于rails现在默认逃避一切,我实际上并没有做任何事情来避免XSS,它几乎可以找到它。由于某种原因,URL未被转义。
为了显示用户名,我有一个简单的帮手:
def display_name(name, site)
if !site.blank?
return link_to(name, site)
else
return name
end
end
但是如果你把像javascript:alert(1)这样的东西放到网站领域,它会直接注入页面 - 任何想法如何逃避这个?
答案 0 :(得分:2)
即使您逃脱了javascript,恶意用户仍然可以创建指向删除可能会影响用户数据的网址的网址。为什么不在收集URL时验证URL?
validates :attribute, :url => true
我建议使用Thong Kuah的UrlValidator。