Рельсы сотовый камень не делают html

Наш проект рельсов теперь использует ячейку.
https://github.com/trailblazer/cells

Но этот драгоценный камень по умолчанию не экранирует HTML от версии 4.0.

http://trailblazer.to/gems/cells/cells4.html

Ячейки по умолчанию не экранируют HTML. Однако вы можете столкнуться с проблемами при использовании помощников Rails. Внутренне эти помощники часто слепо убегают. Это не ошибка Cells, а недостаток дизайна в Rails.

Все, что связано с #capture, вызовет проблемы - проверьте это в качестве примера. Как видите, это Rails, размахивающий спасательным молотом. Пожалуйста, не обвиняйте нас в побегах, где они не должны быть. Скорее откройте проблему на Rails и скажите им, чтобы их код был лучше перезаписываемым для нас. ```

Это хорошо для скорости рендеринга, но если я пропустил использование html_escape для некоторого входного содержимого, это вызовет проблему безопасности.

<%= '<script>alert("hello")</script>' %>

В клеточном геме этот скрипт будет проблемой безопасности.

Есть ли какой-нибудь способ сделать html escape по умолчанию с помощью ячейки, например, rails default.

Я пытаюсь переопределить метод рендеринга gem, но это не очень хорошая идея для обслуживания.

0 ответов

Другие вопросы по тегам