Harry: Authentifizierung via PHP

Beitrag lesen

Holladiewaldfee,

// start session
if (!isset($HTTP_COOKIE_VARS[$sessionName])) {
 $isLoggedIn =  0;
 mt_srand((double) microtime() * 1000000);
 $setId =  md5(str_replace(".","",$REMOTE_ADDR) + mt_rand(100000, 999999));
 setcookie($sessionName, $setId);

Warum so kompliziert und nicht einfach session_id(); ?

if ($HTTP_POST_VARS["user"] == "joachim" && $HTTP_POST_VARS["pass"] == "11111") $isLoggedIn =  1;

Das hier ist die eigentliche Schwachstelle: Das Passwort steht im Klartext da, d.h. wenn jemand von außen Zugriff auf das Script hat - und das haben mehr Leute, als man normalerweise denkt - ist das Passwort bekannt und damit alle Sicherheit dahin.

Deswegen lieber if($_POST["user"]=="joachim" && md5($_POST["pass"])=="komischermd5hash")

Funktionieren tuts - aber kann diese Variable "isLoggedIn" nicht irgendwie geknackt/manipuliert werden?

Wenn jemand als root am Server rumhüpft, seine Session-Datei sucht und die Variable ändert, ja. Sonst: nur schwierig. Es bleibt natürlich zu bedenken, ob nicht ein PHP-Script am selben Server die Möglichkeit hat, den entsprechenden Eintrag in der Session-Datei zu manipulieren. Ergo: Wenn jemand PHP-Scripte unter der ID des Webservers ausführen kann oder als root am Server rumhüpft, dann wird die Sache unangenehm, sonst geht's schon.

Ciao,

Harry

--
  Hä? Was? Signatur?! Kann man das essen?
  Wirrwarr: sh:| fo:) ch:] rl:° br:& n4:° ie:% mo:) va:) de:[ zu:) fl:( ss:) ls:[ js:|