Sicherheitsfrage REMOTE_ADDR

  • Hallo!


    Ich möchte in ein Form eine IP-Sperre einbauen um nach einer bestimmten Anzahl fehlgeschlagener Loginversuche das Form ne Zeit lang zu sperren.


    Meine DB-Abfrage ob die IP "wieder darf" sieht so aus:

    PHP
    1. ip = $_SERVER['REMOTE_ADDR'];
    2. mysql_query("SELECT unlock FROM iplock WHERE ip = '$ip'");


    Meine Frage ist jetzt halt ob es sicher ist $_SERVER['REMOTE_ADDR'] einfach so in die Query zu nehmen, oder ob das ne Sicherheitslücke ist.


    Danke schonmal :)

  • Danke für die Antwort!


    Sowas hab ich mir schon gedacht. Mir war vorher schon nicht ganz wohl dabei eine Variablen von "außen" einfach so zu verwenden. Dachte bei $_SERVER wär das anders.
    Außer die vieldokumentierte Lücke bei PHP_SELF und REQUEST_URI, aber zu REMOTE_ADDR hab ich geranichts gefunden.


    Da ich die IP nur speicher und vergleiche und ansonsten nicht weiterverwende, hash ich das Teil einfach mit hash('sha512', $ip)


    Grüße

  • Es ist zwar immer empfehlenswert, Datenbankeingaben zu escapen, REMOTE_ADDR ist aber im Vergleich zu Werten wie PHP_SELF etc relativ unproblematisch, da REMOTE_ADDR immer die IP des Computers ist, welcher den Request auf deinen Server macht. Das ist zwar nicht unbedingt der Computer der dich interessiert, aber es ist in jedem Fall eine IP-Adresse und daher vergleichsweise unbedenklich, sie kann nicht durch Änderungen am HTTP-Header o.ä. manipuliert werden.