Login script sicher?

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von Clownish, 01.04.2007.

  1. #1 Clownish, 01.04.2007
    Clownish

    Clownish none

    Dabei seit:
    22.05.2006
    Beiträge:
    62
    Zustimmungen:
    0
    Hey ich habe 2 Loginscripte in Php geschrieben, einmal Session basierend, einmal Cookie basierend. Jetzt wüsste ich gerne welches von beiden wie sicher ist, und welchem ich den Vorzug geben sollte;).

    Sessions:

    PHP:
    <?php
       error_reporting
    (E_ALL);
       
    session_start();
        
       require_once(
    'config.php');
       
      function 
    randomkeys($length)
      {
       
    $pattern "123456789abcdefghijklmnopqrstuvwxyzQWERTZUIPASDFGHJKLYXCVBNM";
       for(
    $i=0;$i<$length;$i++)
       {
         
    $key .= $pattern{rand(0,59)};
       }
       return 
    $key;
      }


         
    mysql_connect(HOST,USER,PASS) && mysql_select_db(DB);
        
    $result mysql_query('SELECT Name, Password, cookie FROM users WHERE ID = 1') OR die(mysql_error());
        
    $row mysql_fetch_array($result);
        
        
    $userpass $_POST['userpass'];
        
    $username $_POST['username'];
        
    mysql_free_result($result);
            
        if(
    $_SESSION['login'] == MD5($row['cookie'].$row['Name'].$_SERVER['REMOTE_ADDR'])) 
        {
            echo 
    'Logged In';
        } 
        else 
        {
                                    
            if (
    $username == $row['Name'] && MD5($userpass) == $row['Password'])
                    {
                    
                         
    $atm randomkeys(32);
                        
    $sessiondata MD5($atm.$username.$_SERVER['REMOTE_ADDR']);
                        
    $_SESSION['login'] = $sessiondata;
                        
    mysql_query("UPDATE users SET cookie = '".$atm."' WHERE id='1';"); 
                        echo 
    'Logged In, Cookie set';
                    
                    }
                    else
                    {
    ?>
    Bitte loggen sie sich ein:<br><br>
                    <form action="<?php echo $SCRIPT_NAME ?>" method="post">
                        <input type="text" name="username" /><br>
                        <input type="password" name="userpass" /><br>
                        <input type="submit" />                                
                    </form>
    <?php       
    die;         
                    }
            
               
            
        }
      
    ?> 
    Hier gehts weiter
    Und das gleiche mit Cookies:

    PHP:
    <?php
        
    //error_reporting(E_ALL);
        
       
    require_once('config.php');
       
      function 
    randomkeys($length)
      {
       
    $pattern "123456789abcdefghijklmnopqrstuvwxyzQWERTZUIPASDFGHJKLYXCVBNM";
       for(
    $i=0;$i<$length;$i++)
       {
         
    $key .= $pattern{rand(0,59)};
       }
       return 
    $key;
      }


         
    mysql_connect(HOST,USER,PASS) && mysql_select_db(DB);
        
    $result mysql_query('SELECT Name, Password, cookie FROM users WHERE ID = 1') OR die(mysql_error());
        
    $row mysql_fetch_array($result);
        
        
    $userpass $_POST['userpass'];
        
    $username $_POST['username'];
        
    mysql_free_result($result);
            
        if(isset(
    $_COOKIE['login']) && $_COOKIE['login'] == MD5($row['cookie'].$row['Name'].$_SERVER['REMOTE_ADDR'])) 
        {
            echo 
    'Logged In';
        } 
        else 
        {
                                    
            if (
    $username == $row['Name'] && MD5($userpass) == $row['Password'])
                    {
                    
    ob_start();
                         
    $atm randomkeys(32);
                        
    $keks MD5($atm.$username.$_SERVER['REMOTE_ADDR']);
                        
    setcookie('login'$keks);
                        
    mysql_query("UPDATE users SET cookie = '".$atm."' WHERE id='1';"); 
                        echo 
    'Logged In, Cookie set';
                    
    ob_end_flush();
                    }
                    else
                    {
    ?>
    Bitte loggen sie sich ein:<br><br>
                    <form action="<?php echo $SCRIPT_NAME ?>" method="post">
                        <input type="text" name="username" /><br>
                        <input type="password" name="userpass" /><br>
                        <input type="submit" />                                
                    </form>
    <?php       
    die;         
                    }
            
               
            
        }
      
    ?> 
    Hier gehts weiter


    Wäre über Verbesserungsvorschläge etc dankbar.

    Lg,
    Fabian
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. ux2

    ux2 Grendel Kleinbell

    Dabei seit:
    27.07.2006
    Beiträge:
    56
    Zustimmungen:
    0
    Warum kombinierst du nicht beides ? unnd nimm die IP mit dazu!
     
  4. #3 Clownish, 02.04.2007
    Clownish

    Clownish none

    Dabei seit:
    22.05.2006
    Beiträge:
    62
    Zustimmungen:
    0
    Die ip ist doch schon drin: $_SERVER['REMOTE_ADDR'])
     
  5. #4 madfool, 02.04.2007
    madfool

    madfool Tripel-As

    Dabei seit:
    12.08.2004
    Beiträge:
    192
    Zustimmungen:
    0
  6. #5 Clownish, 02.04.2007
    Clownish

    Clownish none

    Dabei seit:
    22.05.2006
    Beiträge:
    62
    Zustimmungen:
    0
    okay... wie soll ich denn dann Sessionklau verhindern? Welches anderes sicheitsmerkmal als die ip gibt es denn sonst?
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 ganymed, 04.04.2007
    ganymed

    ganymed bluefish

    Dabei seit:
    14.05.2006
    Beiträge:
    52
    Zustimmungen:
    0
    du könntest die browser-kennung zusammen mit der ip auswerten. das gibt ein bisschen mehr sicherheit (schon den ie hat je nach variante sicher 15 verschiedene kennungen (aol-version, media-center-pc,...)
    wird nicht viel bringen, aber ein bisschen.
     
  9. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Eine ssl-Verbindung aufbauen?
     
Thema:

Login script sicher?

Die Seite wird geladen...

Login script sicher? - Ähnliche Themen

  1. ssh login via shell script, und anschliessend befehele ausfuehren.

    ssh login via shell script, und anschliessend befehele ausfuehren.: Moin, ich moechte gerne einige befehle via ssh login in einem Shellscript auf einen entfernten Rechner ausfuehren. der ssh login ist kein...
  2. SSH Login via Shell Script?

    SSH Login via Shell Script?: Hi leute, Vorweg: ich bin noch Neuling im Gebiet Linux, habe aber bissl Hintergrund Wissen erringen können die Letzten Monate und kenn mich mit...
  3. Script bei falschem Login ausführen

    Script bei falschem Login ausführen: Hallo erstmal. Ich möchte verschiedene Dienste meines Servers überwachen und jedes Mal wenn ein Loginversuch fehlschlägt möchte ich ein Script...
  4. rlogin/scriptstart/logout automatisiert auf mehreren rechnern

    rlogin/scriptstart/logout automatisiert auf mehreren rechnern: Hallo, ich hab hier ein paar rechner umherstehen auf denen ich einige skripte entfernt von einem anderen script aufrufen möchte, aber unter...
  5. Welches Script wird nach jedem Login eines Users ausgeführt?

    Welches Script wird nach jedem Login eines Users ausgeführt?: Morgen! Hab da mal son Anliegen. Habe mehrere User eingetragen..... eigentlich normale Benutzer...... Denen soll bei meiner Slackware 10.2 der...