Это работает для меня и защищает от каждой попытки XSS, которую я пробовал, включая обработчики onmouse ... в блоках pre и code:
<%= RedCloth.new( sanitize( @comment.body ), [:filter_html, :filter_styles, :filter_classes, :filter_ids] ).to_html -%>
Первоначальная очистка удаляет множество потенциальных XSS-эксплойтов, включая наведение мыши.
Насколько я могу судить: filter_html экранирует большинство тегов html, кроме кода и pre. Остальные фильтры есть, потому что я не хочу, чтобы пользователи применяли какие-либо классы, идентификаторы и стили.
Я только что проверил страницу с комментариями на вашем примере
"</body>Foo"
и он полностью убрал метку жулика
Я использую Redcloth версии 4.2.3 и Rails версии 2.3.5