В настоящее время я пишу свое первое приложение для Rails. Я пишу простое приложение для блога, которое позволит пользователям комментировать сообщения. Я довольно новичок в Rails, поэтому я ищу небольшое руководство о том, как решать проблемы безопасности с пользовательским вводом.
Во внешнем интерфейсе я использую TinyMCE для приема пользовательского ввода. Насколько я понимаю, TinyMCE удалит любые подозрительные теги (например, <script>
) из пользовательского ввода перед отправкой на сервер. Кажется, это можно обойти, отключив javascript на странице, что позволит пользователю свободно управлять текстовой областью. TinyMCE рекомендует использовать javascript для создания TextArea. Поэтому, если пользователь отключит javascript, текстовой области не будет. Это стандартное решение? Это похоже на взлом.
С другой стороны, как лучше всего удалить вредоносный код? Хотел бы я поставить какую-то проверку в методах создания и обновления внутри моего контроллера комментариев? Есть ли какие-то встроенные в Rails функции, которые могут помочь в этом?
При отображении информации обратно пользователю я предполагаю, что не хочу избегать разметки HTML (с <%= h *text*%>
), потому что именно так она хранится в бэкэнде. Это плохая практика?