Ruby RoR SanitizeHelper允许脚本标记内容

Ruby RoR SanitizeHelper允许脚本标记内容,ruby,ruby-on-rails-3,sanitize,Ruby,Ruby On Rails 3,Sanitize,我已经构建了一个包含脚本标记的文档清理时允许使用的所有标记的白名单,并使用ActionView::Helpers::SanitizeHelper来帮助清理。我的问题是允许在HTML源代码中显示脚本标记,但脚本的内容被删除 对于我的应用程序的这个特定部分,我可以在不进行消毒的情况下进行显示,但我更愿意保持所有内容的一致性 这是我在消毒区的代码 {sanitize@page.body,标记:tsanitize.whitelist.split/\s/,属性:%wid class style alt s

我已经构建了一个包含脚本标记的文档清理时允许使用的所有标记的白名单,并使用ActionView::Helpers::SanitizeHelper来帮助清理。我的问题是允许在HTML源代码中显示脚本标记,但脚本的内容被删除

对于我的应用程序的这个特定部分,我可以在不进行消毒的情况下进行显示,但我更愿意保持所有内容的一致性

这是我在消毒区的代码

{sanitize@page.body,标记:tsanitize.whitelist.split/\s/,属性:%wid class style alt src href target}


在我决定删除本节中的消毒之前,如果有任何帮助,我将不胜感激。

我通常在config/application.rb中执行类似操作

config.action_view.sanitized_allowed_tags = 'a', 'br'
然后,如果您需要为不同的目的允许一组单独的标记:

config.action_view.sanitized_allowed_other_tags = ['a', 'br', 'script']
然后你可以做:

#{sanitize @page.body, tags: Rails.configuration.sanitized_allowed_other_tags, attributes: %w(id class style alt src href target)}
这可能不是最好的解决方案,但至少它允许您只需在一个位置更改允许的标记