Ankündigung

Einklappen
Keine Ankündigung bisher.

wie viel sicherheit ist sinnvoll?

Einklappen

Unconfigured Ad Widget

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

  • wie viel sicherheit ist sinnvoll?

    Hallo

    Ich habe ein aktuelles Beispiel bei dem ich mich frage, ob das nicht etwas übertrieben wäre:

    Erwarteter link:
    Code:
    http://www.domain.de/de/zitat_f5676fe161385788a7c6e2c318e306b3.html
    Mod_Rewrite Regel:
    Code:
    RewriteRule ^([^/]*)/zitat_([^/]*).html /main.php?sprache=$1&side=showzitat&formaction=$2 [L]
    Die ersten Zeilen der aufgerufenen PHP:
    PHP-Code:
    if(!isset($_GET['formaction']) || strlen($_GET['formaction']) != "32")
     {
        echo 
    '<meta http-equiv="refresh" content="8; url='.$_SERVER['HTTP_REFERER'].'">';
        echo 
    "Kein Zugriff auf diese Seite erlaubt";
     } 
    Der Zahlencode ist ein md5-hash. Also immer 32 Zeichen lang. Durch Mod_Rewrite schliese ich ja schon mal einige Manipulationen aus. Zudem überprüfe ich ob der Hashwert auch wirklich 32 Zeichen lange ist.

    Ich möchte dann mit dem hashwert eine SELECT * FROM table WHERE ID = HASHWERT abfrage machen. Soll ich davor jetzt nochmal die normalen Sicherheitsfunktionen drüber laufen lassen, die ich sonst bei allen anderen Eingaben auch mache?

    PHP-Code:
    $zitat mysql_real_escape_string(htmlspecialchars(strip_tags($_POST['zitat']))); 
    Oder wär das übertrieben?
    Geht mir hier nicht nur um den einen Fall, sondern ist generell eine Frage die immer wieder kommt.


    EDIT:
    Hab noch eine Frage zu microtime().
    Ich erstelle den hash aus md5(microtime()); wär ist vllt besser wenn ich noch text dazunehme, der auch relativ selten ist. Z.B. md5($zitat,microtime());

    Wär das besser?
    Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.


  • #2
    Mit ModRewrite schließt du gar nichts aus. Man kann die PHP-Datei immer noch direkt mit übergebenen GET-Parametern aufrufen, mit ModRewrite machst du es lediglich schwerer, da man nicht sofort weiß, welche Parameter genutzt werden.
    Und natürlich musst du mysql_real_escape_string() nutzen. Stelle dir vor, was sonst passierte, wenn ich deine Seite mal mit
    http://www.example.com/de/zitat_f'x' OR 1 = 1; DELETE FROM table
    Sind auch 32 Zeichen.
    Und gewöhne dir bitte an, nicht immer domain.de zu nutzen, die Domain gibt es nämlich wirklich. Für Beispieldomains gibt es extra von der IANA registrierte Secondleveldomains (example.com, example.net und example.org) wie Topleveldomains (.invalid, .test und .example).

    Und wozu willst du den Hashwert von microtime() erzeugen?
    Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

    Kommentar


    • #3
      Zitat von Manko10 Beitrag anzeigen
      Und wozu willst du den Hashwert von microtime() erzeugen?
      Danke. Dann werd ich da noch mal was drauf setzt.
      Zur eindeutigen identifikation eines Eintrags in der Tabelle. Ist sowas wie eine Kennzeichnung. Da alle Angaben unter Umständen mehrmals möglich sind, habe ich halt gedacht dass wenn ich microtime beim eintragen als md5 mit rein packe, eine eindeutige zuordung habe.
      Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

      Kommentar


      • #4
        Schon einmal etwas von Primärschlüsseln gehört?
        Außerdem ist microtime() nicht für die Erzeugung von Zufallszahlen geeignet.
        Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

        Kommentar


        • #5
          Durchaus ist mir das ein Begriff

          Aber ich kann die ID nicht zur Verlinkung mitangeben
          Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

          Kommentar


          • #6
            Und weshalb nicht?
            Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

            Kommentar


            • #7
              Weil sie zu kurz ist.
              Der Unterschied zwischen dem richtigen Wort und dem beinahe richtigen ist derselbe Unterschied wie zwischen dem Blitz und einem Glühwürmchen.

              Kommentar


              • #8
                Und wer oder was hindert dich daran, die Länge nicht zu beschränken?
                Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

                Kommentar

                Lädt...
                X