Is dit een veilig inlog script?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arian Stolwijk

Arian Stolwijk

19/07/2006 10:25:00
Quote Anchor link
Hoi, ik heb net een inlog script gemaakt, en ik vraag me af of het veilig is.
Het wachtwoord + gebruikersnaam zit in de mysql database
het wachtwoord is encrypted als "sha1" en "md5"
Als je het gebruikersnaam invult + het juiste wachtwoord krijg je een link naar veilig.php?naam=jounaam
Op deze pagina bevind zich dan jou stukje beveiligde pagina
Ik heb hem zelf al getest met andere wachtwoorden, gebruikersnamen, cookie veranderen, andere ?naam=jounaam invullen dan dat er in de cookie staat.

Login form:
Niets bijzonders, twee velden gb = gebruikersnaam en ww = wachtwoord

inloggen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
if(isset($_POST['gb'])){
$gb = $_POST['gb'];
}
else{
    die('U heeft geen gebruikersnaam ingevult');
}

if(isset($_POST['ww'])){
$ww = sha1(md5($_POST['ww']));
}
else{
    die('U heeft geen wachtwoord ingevult');
}


    
    $gbsql = "SELECT naam,wachtwoord FROM gebruikers WHERE naam = '".$gb."'";
    $res = mysql_query($gbsql);
    
    if(mysql_num_rows($res) != 1)
    {

        die('Het door u ingevoerde gebruikersnaam bestaat niet');
    }


    while ($obj = mysql_fetch_object($res)){
        
        if($gb == $obj->naam and $ww == $obj->wachtwoord){
            
            echo 'u bent ingelogd<br /><br />';
            setcookie("vitenet", $gb.".".$ww, time() + 1800);
            echo '<a href="veilig.php?naam='.$gb.'">Klik hier om verder te gaan</a>';
        }
else{
            echo 'U heeft een foutief wachtwoord of gebruikersnaam ingvult';
        }
    }

?>


En de veilige pagina:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
include('../db.php');
if (isset($_GET['naam']))
{

$naam = $_GET['naam'];
}
else
{
die('U moet wel een website selecteren');
}


$cookie = $_COOKIE['vitenet'];
$cookie = explode('.',$cookie);

if($cookie[0] != $naam){
    die('U moet eerst inloggen om de site <strong>'.$naam.'</strong> te beheren');
}


$gbsql = "SELECT naam,wachtwoord FROM gebruikers WHERE naam = '".$naam."'";
$res = mysql_query($gbsql);
while ($obj = mysql_fetch_object($res)){
    $name = $obj->naam;
    $wachtwoord = $obj->wachtwoord;
}

if($cookie[0] != $name){
    die('U moet eerst inloggen om de site <strong>'.$naam.'</strong> te beheren');
}

if($cookie[1] != $wachtwoord){
    die('U moet eerst inloggen om de site <strong>'.$naam.'</strong> te beheren');
}

echo 'Dit is een veilige pagina';
?>
Gewijzigd op 01/01/1970 01:00:00 door Arian Stolwijk
 
PHP hulp

PHP hulp

17/11/2024 14:28:43
 
Mebus  Hackintosh

Mebus Hackintosh

19/07/2006 10:37:00
Quote Anchor link
Nouw met een beetje sql injection kom je hier al erg ver mee!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3


GR. mebus
 
Arian Stolwijk

Arian Stolwijk

19/07/2006 10:43:00
Quote Anchor link
owja... is ook zo...
die
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3

Doet zo ongeveer het zelfde als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
addslashes();
?>

Ofniet?

Dit is idd wel een goede opmerking, tot nu toe ben ik dat telkens nog vergeten... :$
Gewijzigd op 01/01/1970 01:00:00 door Arian Stolwijk
 
Ponzi

Ponzi

19/07/2006 10:55:00
Quote Anchor link
Beetje dwaze opmerking misschien, maar je kan deze regel > die('Het door u ingevoerde gebruikersnaam bestaat niet'); < misschien vervangen door > die('De opgegeven gebruikersnaam en/of wachtwoord kon niet worden gevonden'); < .

Kwestie van het 'raden' tegen te gaan :) . Beetje dwaas, maar geloof me.. soms is het redelijk effectief :D
 
Arian Stolwijk

Arian Stolwijk

19/07/2006 11:01:00
Quote Anchor link
Oke, het zal misschien geen groot verschil maken, maar alle beetje helpen ;)
 
Ponzi

Ponzi

19/07/2006 11:05:00
Quote Anchor link
Zo denk ik er ook over :)

Voor de rest knap werk hoor ;) !
 
Arian Stolwijk

Arian Stolwijk

19/07/2006 11:08:00
Quote Anchor link
@ Ponzi

Bedankt :D
 
Arian Stolwijk

Arian Stolwijk

19/07/2006 12:14:00
Quote Anchor link
Verder geen op of aanmerkingen??
 
Erik Rijk

Erik Rijk

19/07/2006 12:19:00
Quote Anchor link
antwoordt op je vraag:

Nee

Ik snap het nut van je query niet.... waarom controleer je in hemelsnaam alleen op gebruikersnaam?
 
Arian Stolwijk

Arian Stolwijk

19/07/2006 12:24:00
Quote Anchor link
Op de tweede pagina?

Deze haalt de gebruikersnaam + wachtwoord uit de database en vervolgens wordt deze controlleerd of wat in de cookie staat ook in de database staat.

Hou zou het dan beter kunnen?
Gewijzigd op 01/01/1970 01:00:00 door Arian Stolwijk
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.