清理URL以防止Rails中的XSS

ric*_*pai 7 ruby xss ruby-on-rails

在rails应用程序中,用户可以创建事件并发布URL以链接到外部事件站点.

如何清理网址以防止XSS链接?

提前致谢,

XSS的一个例子,这是rails的sanitize方法无法阻止的

@url = "javascript:alert('XSS')"
<a href="<%=sanitize @url%>">test link</a>
Run Code Online (Sandbox Code Playgroud)

Ben*_*Ben 5

一旦href已经在标签中,请尝试清理:

url = "javascript:alert('XSS')"
sanitize link_to('xss link', url)
Run Code Online (Sandbox Code Playgroud)

这给了我:

<a>xss link</a>
Run Code Online (Sandbox Code Playgroud)


小智 3

您可以使用 Rails 的sanitize方法来进行一些基本限制。

或者您可以使用 rgrove 的sanitize gem 获得更多选项。

希望这可以帮助。