Удалите встроенный CSS и JavaScript в Rails - PullRequest
5 голосов
/ 22 июля 2009

Я работаю над приложением Rails и хотел бы знать, как лучше всего удалить блоки CSS или JavaScript.

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

Я использую помощник strip_tags , чтобы заботиться о большей части HTML, но он оставляет кучу CSS, когда содержимое содержит встроенный CSS. Спасибо

Ответы [ 3 ]

4 голосов
/ 27 ноября 2009

Попробуйте использовать библиотеку Нокогири:

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

Нокогири может гораздо больше, но это то, что вы просили в вопросах: -)

0 голосов
/ 26 июля 2009

Если вам нужен пользовательский CSS для вашего приложения, вы также можете попробовать http://github.com/courtenay/css_file_sanitize/tree/master.

0 голосов
/ 22 июля 2009

Рекомендуемый способ сделать это - использовать метод sanitize . Метод strip_tags несколько ограничен и менее безопасен:

[strip_tags] Удаляет все HTML-теги из HTML, включая комментарии. Это использует HTML-сканер токенизатор и так его HTML способность разбора ограничена HTML-сканер.

Если вы используете sanitize, вы будете в гораздо большей безопасности, просто придумайте белый список тегов, которые вы намереваетесь разрешить в первую очередь.

...