Ankündigung

Einklappen
Keine Ankündigung bisher.

wie viel sicherheit ist sinnvoll?

Einklappen

Neue Werbung 2019

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

  • SteiniKeule
    hat ein Thema erstellt wie viel sicherheit ist sinnvoll?.

    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?

  • Manko10
    antwortet
    Und wer oder was hindert dich daran, die Länge nicht zu beschränken?

    Einen Kommentar schreiben:


  • SteiniKeule
    antwortet
    Weil sie zu kurz ist.

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    Und weshalb nicht?

    Einen Kommentar schreiben:


  • SteiniKeule
    antwortet
    Durchaus ist mir das ein Begriff

    Aber ich kann die ID nicht zur Verlinkung mitangeben

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    Schon einmal etwas von Primärschlüsseln gehört?
    Außerdem ist microtime() nicht für die Erzeugung von Zufallszahlen geeignet.

    Einen Kommentar schreiben:


  • SteiniKeule
    antwortet
    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.

    Einen Kommentar schreiben:


  • Manko10
    antwortet
    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?

    Einen Kommentar schreiben:

Lädt...
X