对于Ruby应用程序,还有更好的Sanitize替代方案吗?

T14*_*145 6 ruby ruby-on-rails sanitize

我喜欢Sanitize.这是一个惊人的实用程序.我唯一的问题就是它需要永远准备一个开发环境,因为它使用了Nokogiri,这对编译时来说很痛苦.是否有任何程序可以执行Sanitize所做的事情(如果没有其他事情,除了它的作用之外)还没有使用Nokogiri?这将有助于指数级!

Zer*_*ber 2

Rails 有自己的SanitizeHelper.

\n

根据http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html,它将

\n
\n

此清理助手将对所有标记进行 html 编码,并删除\xe2\x80\x99t 特别允许的所有属性。

\n

它还会去除带有无效协议的 href/src 标签,例如 javascript: 特别是。它尽力对抗黑客可能使用的任何技巧,例如输入 unicode/ascii/hex 值来绕过 javascript: 过滤器。查看广泛的测试套件。

\n
\n

您可以在这样的视图中使用它

\n
<%= sanitize @article.body %>\n
Run Code Online (Sandbox Code Playgroud)\n

您可以访问该链接以查看更多自定义选项,例如:

\n

自定义使用(仅允许提到的标签和属性,不允许其他)

\n
<%= sanitize @article.body, tags: %w(table tr td), attributes: %w(id class style) %>\n
Run Code Online (Sandbox Code Playgroud)\n