Robert B.: Warnung! Beware! Uwaga!

Beitrag lesen

Moin,

$_GET, $_POST werden nur zur Sicherheit umgewandelt, also wenn jemand versucht, mit einem selbstgebastelten Request den Server zu schrägen Sachen zu verleiten.

  • Welche Form der „Umwandlung“ findet denn dort statt?
  • Was hindert dich daran fehlerhafte Eingaben mit einem Fehler zu quittieren?

Die Nachteile sind bekannt, spitze Klammern haben in einem Namen-/Adressfeld jedoch nix zu suchen.

Kannst du mit Sicherheit sagen, dass es nicht irgend eine Sprache oder irgend ein Land gibt, in dem das doch erlaubt ist? Bis ich in Baden-Württemberg wohnte, dachte ich auch, dass z.B. Hausnummern eine einfache Sache sein …

Ich hab's mit dem javascript-Befehl location.href = "..." verucht: Sollte nicht funktioniert, tuts aber.

Was genau?

Ohne base64-Encodierung bekomme ich z.B. auch die in den Beiträgen verwendeten Smileys nicht rein. 😊

Das heißt, dass du beim Speichern Base64-kodierst und beim Lesen enkodierst? Dann hat deine Persistenz ein Zeichensatz-Problem, das du damit umgehst.

Und u.a. spitze Klammern, werden eben "entschärft".

kontext-gerecht maskiert

"ob_start" war ja angedacht, um mein "header(...)"-Problem zu lösen, denn das war ja das eigentliche Thema der Anfrage. Der Server folgt dem im Header angegeben Link nicht, sondern ruft die eigene Seite wieder auf, wo ich wieder vor dem glaichen Problem stehe. Und in der Adresszeile sollte ja auch die richtige Datei angegeben sein und nicht die Adresse der Script-Datei. Wenn ich die Login-Prüfung aber in die richtige, die Ziel-Datei verlege und es sich dort herausstellt, dass der Login falsch war, muss ich wieder die Anmeldeseite aufrufen, was eben wieder nicht funktioniert. Es ist zum Mäusemelken! Grmpf!

Hast du dir denn schon einmal mit wget, curl oder dem Netzwerk-Tab der Browser-Entwickler-Tools angeschaut, was deine Seiten jeweils an HTTP-Headern und Status zurückliefern? Und gibt es vielleicht einen Hinweis im error.log des Apachen oder wenn du das Log-Level in PHP erhöhst?

Viele Grüße
Robert