Nabend,
nehmen wir an ich habe einen beliebigen String (Benutzereingabe) und möchte diesen als URL z.B. in den HTML Attributen href oder src einbinden.
Mit htmlentities() bringe ich den String in den richtigen Kontext für HTML.
Der String wird nun als URL interpretiert, ein Ausbrechen aus dem Kontext HTML sollte nicht mehr möglich sein (Ausnahme: HTML Attribute wurden in einfache Anführungszeichen gesetzt, diese maskiert htmlentities nicht! Sowas tue ich aber nicht...), allerdings kann es ja innerhalb des Kontexts URL Strings geben, die ich nicht haben möchte.
Ein Beispiel dafür wäre der String beginnend mit "javascript:".
Daher meine Frage: Welche Strings können auf einer Website gefährlich werden, wenn sie als URL interpretiert werden? (XSS Angriffe)
Interessant wären hier noch Steuer- oder Sonderzeichen. Dadurch erhalte ich zwar eine ungültige URL, aber können sie mir gefährlich werden? Zeilenumbrüche sicher nicht, aber wie sieht es mit einem Rückschritt oder Null-Byte aus?
Würd mich mal interessieren, für den Fall dass man eine URL eben nicht auf gültige Syntax prüft, sondern ungültige Syntax ausschließen möchte.
Gruß,
Andreas