Очистить вывод в Rails - PullRequest
       10

Очистить вывод в Rails

3 голосов
/ 18 октября 2008

Какое лучшее решение для очистки выходного HTML в Rails (чтобы избежать атак XSS)?

У меня есть два варианта: плагин white_list или метод sanitize от Sanitize Helper http://api.rubyonrails.com/classes/ActionView/Helpers/SanitizeHelper.html. Для меня до сегодняшнего дня плагин white_list работал лучше, и в прошлом Sanitize был очень глючным, но, как часть Core, вероятно, он будет в разработке и будет поддерживаться какое-то время.

Ответы [ 3 ]

3 голосов
/ 20 октября 2008

Я рекомендую http://code.google.com/p/xssterminate/.

1 голос
/ 26 октября 2008

Я думаю, что здесь будет работать метод h helper:

<%= h @user.profile %>

Это исключит угловые скобки и, следовательно, нейтрализует любой встроенный JavaScript. Конечно, это также исключит любое форматирование, которое могут использовать ваши пользователи.

Если вы хотите форматировать, возможно посмотрите на уценку.

0 голосов
/ 27 октября 2008

Лично я думаю, что это не маленькое решение принять любую запись HTML в любом веб-приложении. Вы можете проверять теги белого / черного списка сколько угодно, но если вы не проверяете правильность вложения, кто-то может ввести серию закрывающих тегов, например

</td></tr></span></div>

и действительно возиться с вашим макетом.

Я бы обычно давал людям что-то вроде текстиля для ввода их разметки, так как я бы скорее потратил свое время на работу над бизнес-логикой, чем на разбор HTML.

Конечно, если эта текстовая запись является более фундаментальной для вашего приложения (как, например, для stackoverflow), то вам, вероятно, следует уделить больше внимания прокрутке вручную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...