我已经构建了一个白名单,我想允许的所有标签,当清理一个文档,其中包括脚本标签和使用ActionView::Helpers::SanitizeHelper来帮助清理。我的问题是,脚本标签是允许在HTML源中显示,但脚本的内容被删除。
我可以在不进行消毒的情况下显示,但我更愿意保持所有内容的一致。
这是我的清理部分的行代码
#{sanitize @page.body, tags: t("sanitize.whitelist").split(/s/), attributes: %w(id 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)}
这可能不是最好的解决方案,但至少它允许您只在一个地方更改允许的标记。