Karlheinz: Antwortformular erstellen

Hallo,
ich möchte mir (auch zur Übung) ein eigenes Kontaktformular erstellen.
Gibt es hierzu Tipps und/oder eine kleine Anleitung.
Ich habe nämlich im Forum gelesen von Problemen mit der unterschiedlichen Darstellung von Zeichen (Maskierung, entities usw). Was kann als schädlicher Code eingeschleust werden? Wie müssen Eingaben wie <, & " behandelt werden?
Schönen Gruß
Karlheinz

  1. Tach!

    Wie müssen Eingaben wie <, & " behandelt werden?

    Eingaben sind harmlos. Ausgaben müssen dem Kontext gemäß behandelt werden. Zu den Ausgaben zählen auch Ziele wie Datenbanken.

    dedlfix.

    1. Hi

      Eingaben sind harmlos. Ausgaben müssen dem Kontext gemäß behandelt werden. Zu den Ausgaben zählen auch Ziele wie Datenbanken.

      Kaum den zitierten Artikel angelesen, schon die erste Unklarheit. Dort steht:

        
      Beispiel  
      $text = "Der Computer sagte: \"Meine Batterie ist alle.\" Dann schaltete er sich selbst aus.";  
      ......  
      Die Maskierzeichen werden beim Lesevorgang entfernt. Im Speicher steht der Wert  
      
      

      Wenn ich also in einem Formular eingebe:
      Hallo "Stupsi", so steht in der mit $_POST erhaltene Variable dieser Text (Hallo "Stupsi").
      Wann, wo und wozu wird dann das Maskierungszeichen gesetzt, wenn es nach dem obigen Zitat wieder entfernt wird?
      Gruß
      Karlheinz

      1. Tach!

        $text = "Der Computer sagte: "Meine Batterie ist alle." Dann schaltete er sich selbst aus.";
        Die Maskierzeichen werden beim Lesevorgang entfernt. Im Speicher steht der Wert

        Der Kontext dort lautet String im PHP-Code. Der PHP-Parser liest den Code und interpretiert ihn so, dass nur die Anführungszeichen übrigbleiben, sie dafür aber nicht mit dem String-Ende-Anführungszeichen verwechselt werden.

        Wenn ich also in einem Formular eingebe:
        Hallo "Stupsi", so steht in der mit $_POST erhaltene Variable dieser Text (Hallo "Stupsi").
        Wann, wo und wozu wird dann das Maskierungszeichen gesetzt, wenn es nach dem obigen Zitat wieder entfernt wird?

        Gar nicht, anderer Kontext. Der eingegebene Wert steht 1:1 in dem $_POST-Feld drin. (Es sei denn, die Magic Quotes sind eingeschaltet. Sollten sie aber nicht mehr.)

        Im Speicher stehen Rohdaten ohne Maskierungen. Maskierungen braucht man nur, wenn man zum Beispiel Daten und Code gemeinsam in einen Kontext bringen muss.

        dedlfix.

        1. Maskierungen braucht man nur, wenn man zum Beispiel Daten und Code gemeinsam in einen Kontext bringen muss.

          Wobei hier auch Dinge die nur so aussehen wie "Code" als solcher interpretiert werden müssen - wie in dem gegebenen Beispiel in der das doppelte Anführungszeichen vom Programmcode als Zeichenkettenbegrenzer genutzt wird. Darum muss man ihm sagen, dass das Anführungszeichen mittem im text "wörtlich" zu betrachten ist und nicht als Teil des Programmcodes.