рельсы сотовый драгоценный камень не делают html - PullRequest
0 голосов
/ 01 октября 2018

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

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

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

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

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

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

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

В геме ячеекэтот сценарий будет вызывать проблемы с безопасностью.

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

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

...