Ruby on rails 在Rails中剥离内联CSS和JavaScript

Ruby on rails 在Rails中剥离内联CSS和JavaScript,ruby-on-rails,sanitize,Ruby On Rails,Sanitize,我正在开发一个Rails应用程序,我想知道去除CSS或JavaScript块的最佳方法是什么 <style> ... </style> -or- <script> ... </script> ... -或- ... 我使用strip_tags助手来处理大部分HTML,但是当内容包含内联CSS时,它会留下一堆CSS。谢谢推荐的方法是使用此方法。strip_tags方法有一定的局限性,不太安全: [strip_tags]从HTML中剥离所有H

我正在开发一个Rails应用程序,我想知道去除CSS或JavaScript块的最佳方法是什么

<style>
...
</style>
  -or-
<script>
...
</script>

...
-或-
...

我使用strip_tags助手来处理大部分HTML,但是当内容包含内联CSS时,它会留下一堆CSS。谢谢

推荐的方法是使用此方法。strip_tags方法有一定的局限性,不太安全:

[strip_tags]从HTML中剥离所有HTML标记, 包括评论。这使用 html扫描标记器及其html 语法分析能力受到语法分析能力的限制 html扫描器


如果您使用sanitize,您将更加安全,只需列出您打算首先允许的标签的白名单

如果您的应用程序需要用户提供的CSS,您也可以尝试使用。

尝试使用Nokogiri库:

require 'nokogiri'

str = " ... " # some html from user
doc = Nokogiri::HTML(str)
doc.css("style,script").remove # remove all tags with content
new_string = doc.to_s

Nokogiri可以做得更多,但这是您在问题中提出的要求:-)

谢谢,但这并不能解决我的问题。我想去掉开头和结尾样式标记,以及这些标记之间的所有内联CSS。这样我就只剩下纯文本了。谢谢,这肯定很有用,但它并没有回答我的问题(见上面的评论)。谢谢