Mam stronę napisaną przez Rails3. Mój model postu ma kolumnę tekstową o nazwie "content". W panelu pocztowym formularz html ustawia kolumnę "treść" w polu tekstowym za pomocą tinymce. Na pierwszej stronie, z powodu używania tinymce, kod post.html.erb musi zostać wdrożony przy użyciu metody surowej, takiej jak <%= raw @post.content %>
.Używam Rails3 z tinymce. Jak przedstawić użytkownika zamknij przeglądarkę javascript następnie wprowadź xss?
OK, teraz jeśli zamknę przeglądarkę javascript, to pole tekstowe może zostać wpisane bez tinymce, a być może użytkownik wprowadzi dowolne xss, takie jak <script>alert('xss');</script>
. Mój front pokaże to pole ostrzeżenia.
Próbuję użyć sanitize(@post.content)
w posts_controller, ale metoda sanitize będzie filtrować style tinymce ze sobą. Na przykład <span style='color:red;'>foo</span>
stanie się <span>foo</span>
.
Moje pytanie brzmi: jak odfiltrować wejście xss i zarezerwować styl tinymce w tym samym czasie?