h jest aliasem dla html_escape, który jest metoda narzędziowa do usuwania wszystkich znaków znaczników HTML:
html_escape('<script src=http://ha.ckers.org/xss.js></script>')
# => <script src=http://ha.ckers.org/xss.js></script>
Jeśli potrzebujesz większej kontroli, idź z metoda sanitize, który może być stosowany w postaci białej liście znaczników i atrybutów, aby umożliwić:
sanitize(@article.body, :tags => %w(table tr td), :attributes => %w(id class style))
Chciałbym umożliwić użytkownikowi do niczego wejściowego, przechowywać go jak jest w bazie danych, i uciec podczas wyświetlania go . W ten sposób nie tracisz żadnych wprowadzonych informacji. Zawsze możesz poprawić logikę ucieczki później ...
Twoja wtyczka działa świetnie. dzięki! – djburdick
Może chcieć zaktualizować to dla Rails 3? – slhck
Yuck. Przechwycone dane w bazie danych to zły pomysł na zdrowie psychiczne. – Ashe