kostenloser Webspace werbefrei: lima-city


Ist dieser Login/Logout Script sicher?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    stef264

    stef264 hat kostenlosen Webspace.

    Hallo ich wollte mal fragen ob dieser Script sicher ist. Das ganze soll ohne MySQL funktionieren. Die ganze Website ist ein templatesystem.

    login.php

    <?php
    $a = array();
    $a['filename'] = 'login.tpl';
    $a['data'] = array();
    
    
    if(isset($_POST['user'], $_POST['pass'], $_POST['subm'])) {
    	$user_post = strtolower($_POST['user']);
    	$pass_post = strtolower($_POST['pass']);
    	$subm_post = strtolower($_POST['subm']);
    	if(md5($user_post)==$user AND md5($pass_post)==$pass) {
    		setcookie('username', md5($user_post), time()+60*60*24);
    		setcookie('password', md5($pass_post), time()+60*60*24);
    		header('Location: index.php');
    	}
    	else {
    		echo '<script type="text/javascript">
    				<!--
    				alert("Wrong Username or Password");
    				-->
    			  </script>';
    	}
    }
    
    
    return $a;
    ?>


    die Variabeln $user und $pass sind in md5 geschrieben.

    logout.php

    <?php
    $a = array();
    $a['filename'] = 'logout.tpl';
    $a['data'] = array();
    
    
    if(isset($_COOKIE['username'], $_COOKIE['password'])) {
    	setcookie('username', '');
    	setcookie('password', '');
    	header('Location: index.php');
    	exit;
    	}
    else {
    	$logout_msg = "Logout ist fehlgeschlagen";
    	}
    
    return $a;
    ?>


    P.S. login und logout werden included und haben jeweils eine .tpl datei die das formular erstellt. der include folgt durch den url index.php?section=login

    login und logout sind in einem eigenem templatesystem gefasst und von der eigentlich webseite abgeschnitten ^^

    also ums leicht zu sagen hier die ordnerüubsicht:
    admin
    includes
    theme
    tpl
    config.php (hier steht nicht der md5 hash drin)
    index.php
    theme.php
    variables.php

    der admin ordner sieht so aus:
    css
    includes
    tpl
    config.php (md5 hash vom username und passwort)
    index.php
    variabel.php

    also ist das ganze sicher was ich produziere ^^

  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. t****o

    also ist das ganze sicher was ich produziere ^^

    Schön wenn Leute sich ihre fragen selbst beantworten können :biggrin:

    Also was mir sofort auffällt was mir nicht gefällt ist das absichern per Cookie. Warum nutzt du keine Sessions? Was mich dann als nächstes stört, ist die Fehlermeldung per JS. Was passiert mit den Usern die JavaScript aus haben?
    Noch was: Du hast vergessen böse Zeichen aus den Eingaben rauszuholen, dafür ist z.B. mysql_(real_)escape_string(), htmlentities() und addslashes().
  4. Autor dieses Themas

    stef264

    stef264 hat kostenlosen Webspace.

    Ich bin halt neu in php und weil ich iwie sessions nicht kenne aber cookies benutze ich cookies. ich werd mich mal über sessions informieren. 2. fehler ok werd das dann über ner variabel an die tpl datei schicken damit das ausgegebn wird. 3. frage WTF are that ^^ ich kenn die funktionen ganet und was meinste mit bösen zeichen. lerrtaste oder was.

    P.S.: falls das jemand falsch verstanden hat er soll nur einer reinkönnen unzwar der admin es gibt keine registrieung oder sowas es existiert nur 1 user ^^
    P.S.S.: hat zwar nichts damit zu tun aber was bedetet eig P.S. die bedeutung kenn ich aber was ist die ausschreibung von der abkürzung.

    Edit: mysql_(real_)escape_string() ist doch was mit mysql aber das script benutz kein mysql

    Beitrag zuletzt geändert: 3.1.2010 1:38:12 von stef264
  5. t****o

    Cookies haben das Problem das ein User Cookies einfach deaktivieren könnte.

    Zu bösen Zeichen: jemand könnte sich anmelden ohne die Zugangsdaten zu haben! Usereingaben immer prüfen!
  6. Autor dieses Themas

    stef264

    stef264 hat kostenlosen Webspace.

    Zu bösen Zeichen: jemand könnte sich anmelden ohne die Zugangsdaten zu haben! Usereingaben immer prüfen!


    wie soll das den gehen? es wird doch überprüft ob die eingabe stimmt und auf jedem unterpunkt der seite werden die beiden cookies überprüft.
  7. if(isset($_POST['user'], $_POST['pass'], $_POST['subm'])) { // subm ist nicht nötig. Aber das nicht wichtig
    	$user_post = strtolower($_POST['user']);
    	$pass_post = strtolower($_POST['pass']); // strtolower macht das Knacken einfacher. Man muss 26 Buchstaben weniger testen jedesmal, wenn man Brute Force benutzt. (Das ist ein riesen Vorteil.)
    	$subm_post = strtolower($_POST['subm']); // Auch nicht nötig
    	if(md5($user_post)==$user AND md5($pass_post)==$pass) {
    /*
    md5 ist etwas veraltet. Heutzutage nutzt man sha1 und "Salted Hashes" (Wikipedia).
    Ein md5 Hash in Klartext um zu wandeln, geht sehr schnell, bei kürzeren PWs ;)
    */
    		setcookie('username', md5($user_post), time()+60*60*24);
    		setcookie('password', md5($pass_post), time()+60*60*24); // tele hat ja schon gesagt; Lieber Sessions
    		header('Location: index.php');
    	}
    	else {
    		echo '<script type="text/javascript">
    				<!--
    				alert("Wrong Username or Password");
    				-->
    			  </script>';
    	}
    }
    
    
    return $a;


    Insgesamt finde ich es aber sehr gut. Im Vergleich zu anderen Sachen, die man hier sieht...
  8. Merke: MD5 ist auch heut´ noch angebracht, zumindest, wenn man´s richtig macht.

    Und das geht so: Mixe einen festen String in den Parameter, den du an md5() weiter gibst. Also einmal über die Tastatur. Beispiel:

    $var = md5('sdfsfgagasfdg12423tghtztrthfs356sd'.$user_post.'asdf2345452ds134132');


    Diesen festen String hälst du geheim. Bei dieser Länge, wie ich ihn als Beispiel gegeben habe, ist es praktisch unmöglich, an die Passwörter zu kommen. Mixe hier und da noch ein Zeichen rein, oder nehme eins raus, dann hast du einen sicheren Hash, da niemand die Zusatzzeichen kennt.
  9. Autor dieses Themas

    stef264

    stef264 hat kostenlosen Webspace.

    cool ich danke euch für die hilfe ^^ ich werd später nochmal den neuen script reinedititeren damit ich auch weiß das alles richtig ist ^^

    Edit 1: hab noch ne frage ist es sicherer wenn ich das pw doppel encode also einmal mit md5 dann den code mit sha1??

    Beitrag zuletzt geändert: 3.1.2010 17:45:52 von stef264
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!