Gunnar Bittersmann: Artikel zum Kontextwechsel

Beitrag lesen

@@dedlfix:

nuqneH

Deswegen gibt es ja den Einführungsteil, der beschreibt die generelle Problematik und zeigt auch was passiert, wenn man das nicht macht.

Zur Einführung ist " in "" nicht schlecht. Da sollte aber dabeistehen, dass man im Text typographisch richtige (ohne [tm]) Anführungszeichen verwenden sollte – nicht nur aus dem Grund, dass dann nicht escapet werden muss.

Das SQL-Teil sollte in einem gesonderten Artikel behandelt werden. Einsteiger werden eher mit HTML und PHP (ohne DB) zu tun haben.

Vielleicht solch ein Beispiel: Wenn der URI http://example.net/?a=b&auml=c in den HTML-Kontext gebracht wird (href-Attribut), muss das & entsprechend escapet werden (&), weil der Parser sonst http://example.net/?a=bü=c liest.

Wenn example&co in den Query-Kontext gebracht wird, muss das & entsprechend escapet werden (%26), weil der Parser es in http://example.net/?q=example&co sonst als Trennzeichen zwischen Paramertern liest.

Am Beispiel <a href="http://example.net/?a=b&amp;q=example%26co"> kann man nochmal verdeutlichen, wie dasselbe Zeichen & in verschiedenen Kontexten jeweils entsprechend escapet wird.

Daraus ergibt sich von selbst, dass man was tun muss, wenn man dieses Problem nicht haben möchte.

Die Gefahr von XSS finde ich in den Artiklen nicht erwähnt. Dem Entwickler mag die Gefahr gar nicht bewusst sein (1000fach hier im Forum). Es ist ja auch kein Fehler, den irgendein Parser melden könnte.

Qapla'

--
„Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)