Tipps von Rails sanieren () in der Ansicht oder wie sicher ist mein Code
-
02-10-2019 - |
Frage
Ich habe einen Teil, die diese sanitize () Code enthält:
<%= sanitize comment.body,
:tags => %w(a b embed i img object p param),
:attributes => %w(allowfullscreen allowscriptaccess href name src type value) %>
würde ich Benutzer gerne Videos einbinden zu können, Links, Bilder, Verwendung kursiv, fett, etc.
Wie gefährlich ist dies, und wenn ich zieh das an einer Live-Website, was soll ich erwarten oder vorbereitet werden, zu behandeln?
. Hinweis: dies wird vorausgesetzt, es gibt keine Hygienisierung von Eingang offensichtlich
Vielen Dank für das Lesen.
Lösung
Die Variablen Sie wirklich aufpassen müssen ist für und .
Wenn Videos ermöglicht, sollten Sie entweder Validieren mit einem akzeptablen Objektformat, das die erwarteten Werte übereinstimmt kommen von YouTube und anderen Systemen oder (im Idealfall) schafft eine Benutzeroberfläche, die Griffe für den Benutzer der Einbettung.
Im vergangenen Jahr habe ich ein System, das erlaubt Video Einbetten von YouTube-URL zu nehmen und das Objekt manuell Einbettungscode abzuleiten. Es hatte den Vorteil, dass die Benutzererfahrung ziemlich sowie Schutz des Systems vor einem möglichen Angriffsvektor rationalisiert.
Oh, und andere Sache - Nutzung stark ein em , anstatt b und i , wenn Sie können .