HTML-Spezialentitäten mit Leichtigkeit dekodieren
HTML-Spezialentitäten können eine verwirrende Aufgabe sein. Betrachten Sie die folgende JSON-Antwort:
{ "message": "We're unable to complete your request at this time." }
Beachten Sie den codierten Apostroph ('). Auch wenn der Grund für diese Kodierung unklar sein mag, ist Ihr Hauptanliegen die Dekodierung.
Invasiver Ansatz von jQuery
Eine mögliche Methode mit jQuery besteht darin, den HTML-String in zu konvertieren ein div und extrahieren Sie dessen Textinhalt:
function decodeHtml(html) { return $('<div>').html(html).text(); }
Dieser Ansatz ist jedoch etwas unkonventionell.
Eine bevorzugte Lösung: Tags bewahren
Es gibt eine elegantere Lösung, die auch Tags bewahrt:
function decodeHtml(html) { var txt = document.createElement("textarea"); txt.innerHTML = html; return txt.value; }
Dieser Ansatz beinhaltet die Erstellung eines textarea-Element, setzt sein innerHTML auf die HTML-Zeichenfolge und ruft dann seinen Wert ab, der dekodiert wird Inhalt.
Praktisches Beispiel mit XSS-Prävention
Betrachten Sie das folgende Beispiel:
Input: Entity:&nbsp;Bad attempt at XSS:<script>alert('new\nline?')</script><br> Output: Entity: Bad attempt at XSS:<script>alert('new\nline?')</script><br>
Wie Sie sehen können, ist die spezielle Entität ( ) wird dekodiert, während das Skript-Tag erhalten bleibt, um die Sicherheit Ihrer Anwendung zu gewährleisten.
Das obige ist der detaillierte Inhalt vonWie kann ich spezielle HTML-Entitäten einfach dekodieren und gleichzeitig XSS verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!