在rails应用程序中,用户可以创建事件并发布URL以链接到外部事件站点。
如何清理网址以阻止XSS链接?
提前致谢,
XSS的示例,这是rails的清理方法
无法阻止的@url = "javascript:alert('XSS')"
<a href="<%=sanitize @url%>">test link</a>
答案 0 :(得分:5)
一旦href已经在以下标签中,请尝试清理:
url = "javascript:alert('XSS')"
sanitize link_to('xss link', url)
这给了我:
<a>xss link</a>
答案 1 :(得分:2)
答案 2 :(得分:1)
sanitize
适用于html字符串,而不是网址。这意味着,您无法清理URL本身,但您可以清理一段带有恶意URL链接的html。例如
<%= sanitize "<a href='#{@url}'>Things</a>" %>
这将清除所有已知恶意属性的链接
答案 3 :(得分:-2)
自3.2.13,3.1.12,2.3.18以来,此漏洞已得到修复。
以下链接还提供了可在早期版本中使用的补丁。
https://groups.google.com/forum/#!msg/rubyonrails-security/zAAU7vGTPvI/1vZDWXqBuXgJ