Ankündigung

Einklappen
Keine Ankündigung bisher.

Validierung von $_GET['daten']

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Validierung von $_GET['daten']

    Hallo Leute,

    ich bin gerade dabei, mich mit der Validierung von $_GET-Daten zu befassen. Angenommen, ich möchte überprüfen, ob ein GET-Wert ein md5-Hash ist. Er enthält also Buchstaben in Groß- und Kleinschreibung sowie Zahlen.

    Meine Überlegung ist, dass ich das eigentlich relativ einfach mit preg_match() überprüfen kann. Spricht irgendetwas dagegen, diese Funktion zu verwenden? Grundsätzlich sollte man ja eher sparsam mit Funktionen umgehen.

    Ich habe auch auch diverse andere Funktionen gesehen, mit denen man das prüfen könnte (zB mit ctype_alnum() und strlen()).

    Welche Variante bevorzugt ihr und warum? Und was haltet ihr von der Validierung via preg_match?

    Danke im Voraus für konstruktive Antworten!
    .

  • #2
    Nur weil jemand mit dem Kopf auf die Tastatur haut, ist es doch nicht unbedingt ein (bewusster) hash?
    Wenn ich eine ID erwarte z.B. nutze ich ctype_digit()... sollte genug Möglichkeiten zur Validierung geben.

    Muss mir das mal näher ansehen: http://php.net/manual/de/filter.examples.validation.php
    [COLOR=#A9A9A9]Relax, you're doing fine.[/COLOR]
    [URL="http://php.net/"]RTFM[/URL] | [URL="http://php-de.github.io/"]php.de Wissenssammlung[/URL] | [URL="http://use-the-index-luke.com/de"]Datenbankindizes[/URL] | [URL="https://www.php.de/forum/webentwicklung/datenbanken/111631-bild-aus-datenbank-auslesen?p=1209079#post1209079"]Dateien in der DB?[/URL]

    Kommentar


    • #3
      Ich muss VPh hier zustimmen. Bloß weil du etwas übergeben bekommst was aus ^[a-f0-9]{32}$ besteht, muss das noch lange kein gewollter MD5-Hash sein.

      Edit: md5 hat ja keine Großbuchstaben. Im RegEx geändert.
      Zitat von derwunner
      "Ein FISI ist auf gut-deutsch der Netzwerker. Das heißt Du gehst rauß zum Kunden oder auf die Straße und verlegst Leitungen" - derwunner 2015

      Kommentar


      • #4
        Zitat von kremser Beitrag anzeigen
        Angenommen, ich möchte überprüfen, ob ein GET-Wert ein md5-Hash ist. Er enthält also Buchstaben in Groß- und Kleinschreibung sowie Zahlen.
        Groß- und Kleinbuchstaben sprechen eigentlich dafür, das es kein bewusster Hash ist. Außerdem sprechen wir offensichtlich von der Hex-Darstellung von Md5-Hashes? Da kannst du auch jede Funktion verwenden die dir eine hexadezimale Zahl auf Gültigkeit prüft.

        Kommentar


        • #5
          Grundsätzlich sollte man ja eher sparsam mit Funktionen umgehen.
          Was'n das fürn Quark?

          Generell seltsame Antworten. Wenn ich etwas auf einen Hash prüfen will, dann will ich das prüfen.
          Ich muss VPh hier zustimmen. Bloß weil du etwas übergeben bekommst was aus ^[a-z0-9]{32}$ besteht, muss das noch lange kein gewollter MD5-Hash sein.
          Ich bin kein Kryptoexperte, aber ich gehe davon aus, dass für jeden möglichen entsprechend langen Hexwert auch ein passender Wert zu finden ist, der gehasht diesen Hexwert erzeugt.

          Also: Klar, warum nicht RegExpr. Ist ein superkurzer Ausdruck.

          http://de.wikipedia.org/wiki/Duck-Typing
          [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