Was ist "Geflüchtet" & "Unescaped" - Ausgabe
Ich bin nicht vertraut mit Javascript
Lernen-Vorlage node.js template-engine, es hat "Escaped" & "Unescaped" Ausgabe
Was ist eigentlich "Geflüchtet" & "Unescaped" - Ausgabe?
Ist es wie die "include once" & "gehören"?
(Google gibt keine Ergebnis über diesem)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Escaping und unescaping sind nützlich, um zu verhindern, dass
Cross-Site-Scripting
(XSS) Angriff möglich ist. Es ist eine der häufigsten Angriffe im web, da es leicht sein wird zu erstellen, eine Angriffsmethode, wenn die Website ist nicht darauf ausgelegt gezielt. Seinen RangZahl 3 in die OWASP Top 10 Schwachstellen 2013
.Den wichtigsten Absicht, NICHT zu lassen, die der browser ausführen oder interpretieren, den HTTP-Antwort-auf eine andere Weise als beabsichtigt.
Zum Beispiel, können sagen, Sie haben eine web-Seite, die akzeptiert, erhält der Nutzer nach Eingabe seiner Adresse, und Sie möchten, dass der Benutzer, um zu bestätigen Sie auf der nächsten Seite. So bekommen Sie die-Adresse des Nutzers und zeigt Sie auf der nächsten Seite. Wenn der Benutzer eine gültige Adresse, wird es kein problem sein. Was ist, wenn der Benutzer etwas wie folgt
Deine nächsten Seite einfach produzieren ein alert-box sagen
Welcome
. Nun, betrachten diesen Fall. Sie schreiben eine blogging-Anwendung und der Benutzer die oben gesehen Skript in das Textfeld ein. Sie ll sein, der Speicherung in DB und wer will, um zu sehen, Ihr blog zu sehen bekommen, die alert-box. Schlimmste ist, wenn der Angreifer stellt das in einer Endlosschleife, wer Sie besucht, der blog wird nicht in der Lage sein, um den Inhalt Lesen überhaupt.Dies ist nur eine der grundlegenden Angriffe, die möglich ist, wenn Sie nicht die Flucht der text.
So, in der Regel, den text der Benutzer eingegeben wird, werden entkommen und dann gespeichert in der DB. Zum Beispiel, die oben gesehen-Angriffen (das script-tag Sache) geworden, wie dieser, nach
HTML-escaping
Nun, der browser wird nicht betrachten dies als ein script-element, sondern ein HTML-element, so zeigt er es als
anstatt es auszuführen.
Escape: mit Dieser Funktion codiert die Sonderzeichen, mit Ausnahme von: * @ - _ + . /http://www.w3schools.com/jsref/jsref_escape.asp
Unescape: Die unescape () - Funktion dekodiert einen kodierten string.
http://www.w3schools.com/jsref/jsref_unescape.asp
escape
undunescape
sind veraltet und sollten nicht verwendet werden. Gibt es bessere Funktionen (encodeURI
,encodeURIComponent
, ...) und bessere Referenzen als W3Schools (MDN zum Beispiel).