Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Post Daten prüfen

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Post Daten prüfen

    Hallo
    Sollte man die per Post übermittelten Daten mit dem vollen Programm prüfen (isset,striptags,htmlspecialchars,mysqlrealescape String etc.)?

    MFG

  • #2
    Von den genannte Funktion prüft nur [MAN]isset[/MAN] etwas. Die anderen prüfen nicht, sondern konvertieren. Konvertieren solltest du dann wenn es notwendig ist. Das heißt insbesondere:
    • Wenn du aus Eingaben Datenbankabfragen zusammenbaust musst du sicherstellen, das die Datenbankabfrage die von dir beabsichtigete Bedeutung hat. Dazu benutzt man [MAN]mysql_real_escape_string[/MAN].
    • Wenn du Daten anzeigst, dann musst du sicherstellen, dass das angezeigt wird, was der Benutzer eingegeben hat. Insbesondere sollte das Eingebene nicht durch debn HTML-Parser des Browsers als HTML aufgefasst werden. Dazu benutzt man [MAN]htmlentities[/MAN].
    Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

    Kommentar


    • #3
      trotzdem solltest du POST-Daten nie unescaped in die Datenbank schreiben - am besten aber du machst zusammen mit isset noch einen Test auf erlaubte Werte ... (vielleicht hast du ja gleich einen passenden Wertebereich zur Verfügung, oder gar ein Muster, dass preg_match testen kann)
      "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

      Kommentar


      • #4
        Zitat von eagle275 Beitrag anzeigen
        ... am besten aber du machst zusammen mit isset noch einen Test auf erlaubte Werte ...
        Das gehört zu den fachlichen Prüfungen. Die sind meistens getrennt von den Konvertierungen, die aus sicherheitsgrunden vorgenommen werden.
        Meinungen, die ich geäußert habe, sind nicht notwendigerweise meine eigenen. Abweichungen von der deutschen Rechtschreibung unterliegen dem Urheberrecht, dürfen aber unter den Bedingungen von verwendet werden

        Kommentar


        • #5
          Ok Danke für die Info. Natürlich gibt es einen Unterschied zwischen Prüfung und Konvertierung. Reicht es eigentlich, wenn man die Input-Eingaben konvertiert oder muss man das gleiche Prozedere auch noch beim Output machen? Schließlich sollte es einmal doch reichen oder?

          Verwendet man eher htmlentities oder htmlspecialchar? Ist doch eigentlich egal oder was nutzt man besser? Mit preg_match arbeite ich übrigens besonders bei E-Mail Adressen.

          Kommentar


          • #6
            Zitat von Extremefall Beitrag anzeigen
            Reicht es eigentlich, wenn man die Input-Eingaben konvertiert
            Nein, das macht man gar nicht. Man speichert Rohdaten.

            (Ich rede hier nicht von ggf. für die DB-Schnittstelle nötigen Maskierungen. Diese verändern die Daten schließlich nicht.)

            oder muss man das gleiche Prozedere auch noch beim Output machen?
            Nur da - schließlich ist das der Moment, wo du die Daten in einen anderen Kontext (HTML) bringst.

            Verwendet man eher htmlentities oder htmlspecialchar?
            Letzteres.


            Diesen Artikel Artikel:Kontextwechsel – SELFHTML lesen und verstehen. Danach sollte alles klar sein.
            [SIZE="1"]RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?[/SIZE]

            Kommentar


            • #7
              Danke. Also reicht beim Input mysqlrealescapestring? Die Funktion ist aber nötig oder? Sonst besteht doch die Gefahr einer SQL Injection? Und den Rest macht man beim Output?

              Kommentar


              • #8
                Reicht es eigentlich, wenn man die Input-Eingaben konvertiert oder muss man das gleiche Prozedere auch noch beim Output machen?
                Du konvertierst sie, wenn du sie konvertieren musst. Warum solltest du die Daten sofort nach Erhalt bearbeiten? Es hängt davon ab, was du mit den Daten machst. Willst du sie ausgeben, wendest du htmlspecialchars() an, schickst du sie an die Datenbank, kommt mysql_real_escape_string() zum Einsatz usw.

                Artikel:Kontextwechsel – SELFHTML
                Verwendet man eher htmlentities oder htmlspecialchar? Ist doch eigentlich egal oder was nutzt man besser?
                • [MAN]htmlspecialchars[/MAN]
                • [MAN]htmlentities[/MAN]
                [URL]http://hallophp.de[/URL]

                Kommentar


                • #9
                  Das Thema wurde bereits hinreichend behandelt. Bitte benutze die Forensuche und beachte diesen Thread!

                  [MOD: Thread geschlossen]
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar

                  Lädt...
                  X