在Rails应用程序中,用户可以创建事件并发布URL以链接到外部事件站点。清理URL以防止Rails中的XSS
如何清理URL以防止XSS链接?
由于提前,XSS的
为例,这是不是轨的sanitize方法
@url = "javascript:alert('XSS')"
<a href="<%=sanitize @url%>">test link</a>
在Rails应用程序中,用户可以创建事件并发布URL以链接到外部事件站点。清理URL以防止Rails中的XSS
如何清理URL以防止XSS链接?
由于提前,XSS的
为例,这是不是轨的sanitize方法
@url = "javascript:alert('XSS')"
<a href="<%=sanitize @url%>">test link</a>
尝试消毒一次href是已经在类似这样的标记:
url = "javascript:alert('XSS')"
sanitize link_to('xss link', url)
这给了我:
<a>xss link</a>
此漏洞已修复了自3.2.13,3.1.12,2.3。 18。
以下链接还提供了可用于早期版本的修补程序。
https://groups.google.com/forum/#!msg/rubyonrails-security/zAAU7vGTPvI/1vZDWXqBuXgJ
sanitize
可在HTML字符串,而不是URL。意思是说,你不能净化一个URL本身,但是你可以净化一段与恶意网址有关联的html。例如
<%= sanitize "<a href='#{@url}'>Things</a>" %>
这将清除所有已知的恶意属性
@url =的链接 “的javascript:警报( 'XSS')” xss link不起作用。我应该反映我的问题,我已经测试了导轨的消毒方法。 – rickypai 2012-03-10 05:47:04
如果您需要比内置Rails清理所提供的更多控制权,rgrove的清理宝石真的很不错。无论哪种方式,就像Ben的回答指出的那样,您需要清理整个链接的html,而不仅仅是URL本身。 – antinome 2013-11-06 16:40:22