2017-11-05 1 views
8

Viele Editoren erlauben die Formatierung wie Medium Formatierung jetzt bietet. Von dem, was ich im DOM sehe, fügt es einfach HTML hinzu. Aber wie saniert man diese Art der Eingabe, ohne die vom Benutzer angewendete Formatierung zu verlieren?Wie behandeln in JavaScript-Editoren, die Hygienisierung

z. fett Klick fügt hinzu:

<strong class="markup--strong markup--p-strong">text</strong>

aber Sie würden nicht wollen, machen, wenn der Benutzer selbst, dass eintritt. Wie ist das anders? Wäre das auch anders, wenn Sie mit Abschlägen stylen würden, aber nicht zulassen, dass Benutzer ihren eigenen Abschlag eingeben, sondern nur über den Browser zugänglich machen?

Ein Weg, I einfiel, jedes HTML-Sonderzeichen zu entkommen, aber das scheint seltsam. Soweit ich weiß, Sie Desinfizierer den Inhalt nur bei der Ausgabe

+0

Sie haben die Quelle zu finden - so speziell auf Ihre auf Medien beziehen? Verwenden Sie Dev-Tools, um herauszufinden, wo in der JS, die gerade ausgespuckt wird, diese ablenken –

Antwort

3

Sie Shold verwenden eine serverseitige Desinfektionsmittel, wie von Vipin als Client-Seite Validierung ist anfällig für manipuliert werden. OWASP (Open Web Application Security Project) hat einige Führer und Desinfektionsmitteln, die Sie wie die Java-HTML-Sanitizer verwenden.

Für eine allgemeine kurz auf dem Konzept dieses https://www.owasp.org/index.php/Data_Validation unter dem Abschnitt Sanitize bitte lesen.

1

Sie könnten die weiß aufgeführten Elemente mit anderen Zeichen, zum Beispiel ersetzen:

<strong.*> becomes |strong| 

Sie dann alle anderen HTML entfernen. Achten Sie auf onmouseover = "alert (1)", also halten Sie es wirklich einfach.

auch vorsichtig sein, wenn die Benutzereingabe zu machen. Füge es nicht einfach als Code hinzu. Analysieren Sie es stattdessen und erstellen Sie die Elemente mit JavaScript. Verwenden Sie nie innerHTML, aber verwenden Sie .innerText und document.createElement().

Verwandte Themen