Frage

Was ist die beste Lösung Ausgabe von HTML in Rails zu sanieren (um XSS-Angriffe zu vermeiden)?

Ich habe zwei Möglichkeiten: white_list Plugin oder sanieren Methode von Sanitize Helper http: //api.rubyonrails.com/classes/ActionView/Helpers/SanitizeHelper.html . Für mich bis heute gearbeitet hätte, das white_list Plugin besser und in der Vergangenheit Sanitize war sehr fehlerhaft, sondern als Teil des Kerns, wahrscheinlich wird es in der Entwicklung sein und eine Zeit lang unterstützt werden.

War es hilfreich?

Lösung

Ich denke, die h-Hilfsmethode hier funktioniert:

<%= h @user.profile %>

Dies wird spitze Klammern entkommen und daher jede eingebettete JavaScript neutralisiert. Natürlich wird dies auch beseitigt jede möglicherweise verwenden, um Ihre Benutzer zu formatieren.

Wenn Sie die Formatierung wollen, vielleicht bei Abschlag aussehen.

Andere Tipps

Ich persönlich denke, es ist nicht eine kleine Entscheidung beliebigen HTML-Eintrag in einem beliebigen Web-App zu akzeptieren. Sie können für weiß / schwarze Liste gesetzt Tags so viel testen, wie Sie wollen, aber es sei denn, Sie sind für die korrekte Verschachtelung testen, könnte jemand eine Reihe von End-Tags, zum Beispiel

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

und wirklich Chaos mit Ihrem Layout.

Ich würde in der Regel geben die Menschen so etwas wie Textil ihre Markup zu geben, da ich eher würde meine Zeit damit verbringen, arbeiten an Business-Logik als HTML-Analyse.

Natürlich, wenn dieser Text Eintrag von grundlegender Bedeutung für Ihre Anwendung ist (wie zum Beispiel für Stackoverflow ist), dann sollten Sie wahrscheinlich mehr Aufmerksamkeit geben Sie Ihre eigenen Hand-rollen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top