Loginscript für adminarea

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Loginscript für adminarea

    Hallo,
    würde gerne eure meinung wissen, ob ihr dieses loginscript für sicher haltet??
    passwörter sind verschlüsselt!!
    und das cookie hat ne ablaufszeit!!!

    Ablauf:
    abfrage ob ein cookie vorhanden ist wenn das der fall ist soll gefragt werden ob die daten mit der mysql-datenbank übereinstimmen

    PHP-Quellcode

    1. if(!empty($_COOKIE['user']) && !empty($_COOKIE['pass']))
    2. {
    3. $value_user = $_COOKIE['user'];
    4. $value_pass = $_COOKIE['pass'];
    5. include("config.php");
    6. $query = "SELECT * FROM users WHERE username='$value_user' && passwort='$value_pass' ";
    7. $result = mysql_query( $query );
    8. if ($result)
    9. {
    10. //hier wird dann die seite angezeigt
    11. }
    12. else
    13. {
    14. //wenn das ausgefürht wird war ein hacker am werk mit falschen daten ;)
    15. }
    16. }
    17. else
    18. {
    19. echo 'nich eingeloggt!!';
    20. }
    Alles anzeigen


    würde mich freuen eine antwort zubekommen:)

    mfg insane
  • Sehr gefährlich!
    Gibt jemand als Cookie[user]

    Quellcode

    1. ' OR 'x'='x';#

    ein, nützt dir auch md5 nichts mehr.

    Außerdem, was passiert, wenn jemand keine Cookies aktiviert hat? (Fehlermeldung) Du musst "isset" anstatt "empty" benutzen.

    Auch gibt es keine IP-Sperre, Bots haben es da schnell raus, wie sie sich einloggen müssen.

    Edit: Außerdem funktioniert das doch gar nicht. Da fehlt eine Funktion ala mysql_fetch_array.
  • PHP-Quellcode

    1. <?
    2. if(strlen($_COOKIE['user']) && strlen($_COOKIE['pass']))
    3. {
    4. include_once("config.php");
    5. $sUsername = strip_tags(htmlspecialchars($_COOKIE['user'], ENT_QUOTES));
    6. $sPassword = strip_tags(htmlspecialchars($_COOKIE['pass'], ENT_QUOTES));
    7. $result = mysql_query("SELECT null
    8. FROM users
    9. WHERE username = '".$sUsername."'
    10. AND passwort = '".$sPassword."' ");
    11. if (mysql_num_rows($result))
    12. {
    13. // Benutzerdaten sind korrekt
    14. }
    15. else
    16. {
    17. // Benutzerdaten sind falsch
    18. }
    19. mysql_free_result($result);
    20. }
    21. else
    22. {
    23. // Kein Cookie vorhanden: Login Seite anzeigen
    24. }
    25. ?>
    Alles anzeigen

    Noch paar Hinweise die evtl. verbesserungswürdig sind:

    - Du speicherst zwei Cookies: Eins mit dem Namen "user" und eins mit "pass". Du kannst du Username und Passwort in einem Cookie speichern, in dem du diese zusammenhängst (zu einer Zeichenkette) und diese beim Auslesen des Cookies z. B. mit explode() wieder trennst.

    - Ich hoffe du speicherst mindestens das Passwort verschlüsselt in dem Cookie. Du kannst auch eigentlich den Usernamen verschlüsselt speichern. Verschlüsselung z. B. mit md5()

    Eine andere fortgeschrittenere Möglichkeit wäre:

    Du speicherst Usernamen und Passwort im Cookie md5 verschlüsselt als eine Zeichenkette z. B.:

    PHP-Quellcode

    1. $mixed = md5($username.$password);
    2. setcookie(..., $mixed);

    Die DB-Abfrage geht dann so:

    PHP-Quellcode

    1. SELECT null FROM users WHERE MD5(CONCAT(username, password)) = 'MD5-Hash aus dem Cookie'
    "Ich spitt' zu gefährlich, um anderen Rappern Hoffnung zu geben, es geht, ich fing an ohne Talent und Plan und mittlerweile kennt jeder in Deutschland mein Namen!
    "http://www.freesoft-board.to/…links-machen-164135.html"