Avatar billede -veile- Nybegynder
16. februar 2006 - 22:41 Der er 7 kommentarer

Login sikkert nok!

Er dette login script sikkert!
<?
/* Check User Script */
session_start();  // Start Session

include 'includes/mysql.php';
// Conver to simple variables
$username = $_POST['username'];
$password = $_POST['password'];

if((!$username) || (!$password)){
    echo "Please enter ALL of the information! <br />";
    include "login_form.php";
    exit(); 
}

// Convert password to md5 hash
$password = md5($password);

// check if the user info validates the db
$sql = mysql_query("SELECT * FROM users WHERE username='$username' AND password='$password' AND activated='1'");
$login_check = mysql_num_rows($sql);

if($login_check > 0){
    while($row = mysql_fetch_array($sql)){
    foreach( $row AS $key => $val ){
        $$key = stripslashes( $val );
    }
        // Register some session variables!
        session_register('first_name');
        $_SESSION['first_name'] = $first_name;
        session_register('last_name');
        $_SESSION['last_name'] = $last_name;
        session_register('email_address');
        $_SESSION['email_address'] = $email_address;
        session_register('special_user');
        $_SESSION['user_level'] = $user_level;
       
        mysql_query("UPDATE users SET last_login=now() WHERE userid='$userid'");
       
        header("Location: loginsucces/index.php");
    }
} else {
    echo "Du kunne ikke logges ind! prøv igen!<br />";
    include "login_form.php";
}
?>

Ved godt man ikke kan lave et 100% sikkert login system, men jeg vil gerne gør det så besværligt som muligt at hacke det! speceilt meget Injections!
Avatar billede yezbarh Nybegynder
16. februar 2006 - 22:46 #1
Det skulle vidst være solidt nok til man IKKE kan hacke det! Du kan jo gøre på mange måder - endnu et eksempel:


<?php
/* Check User Script */
session_start();  // Start Session

include("includes/mysql.php");

// Conver to simple variables
$username = $_POST["username"];
$password = $_POST["password"];

if( isset( $username ) ) || isset( $password ) )
{
    print "Please enter ALL of the information! <br />";
    include("login_form.php");
    exit(); 
}

// Convert password to md5 hash
$password = md5($password);

// check if the user info validates the db
$sql = mysql_query("SELECT `id`, `first_name`, `last_name`, `email_adress`, `special_user`, `user_level` FROM `users` WHERE `username` = '$username' AND `password` = '$password' AND `activated` = 1");
$login_check = mysql_num_rows($sql);

if($login_check > 0)
{
    while( $row = mysql_fetch_array( $sql ) )
{
    foreach( $row AS $key => $val ){
        $key = stripslashes( $val );
    }
        // Register some session variables!
        session_register('first_name');
        $_SESSION['first_name'] = $first_name;
        session_register('last_name');
        $_SESSION['last_name'] = $last_name;
        session_register('email_address');
        $_SESSION['email_address'] = $email_address;
        session_register('special_user');
        $_SESSION['user_level'] = $user_level;
       
        mysql_query("UPDATE `users` SET `last_login` = now() WHERE `userid` = '$userid'");
       
        header("Location: loginsucces/index.php");
    }

}
else
{
    print "Du kunne ikke logges ind! prøv igen!<br />";
    include("login_form.php");
}
?>


--
yezbarh
Avatar billede -veile- Nybegynder
17. februar 2006 - 00:05 #2
Jae det kan godt være det er sikkert, men jeg kan sku ikke logge ind! tror ikke den kommer vidre ind derfra hvor den tjekker om der skrevet noget i felternE!
Avatar billede -veile- Nybegynder
17. februar 2006 - 00:54 #3
Har løst problemmet!
Avatar billede morhan Novice
17. februar 2006 - 01:30 #4
username sætter du ind i sqlen uden validering. hvis ikke magic quotes er slået til på serveren, så er du åben for angreb her

kør username gennem mysql_real_escape_string før indsættelse
Avatar billede morhan Novice
17. februar 2006 - 01:31 #5
de der session_register kald behøver du ikke
Avatar billede -veile- Nybegynder
17. februar 2006 - 02:14 #6
Session_register kaldene tager jeg med! men den mysql_real_escape_string, hvor siger det ska stå henne!:?
Avatar billede -veile- Nybegynder
17. november 2007 - 21:25 #7
morhan kan du ikk lige ligge et svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester