Avatar billede sylvesternielsen Nybegynder
23. august 2002 - 14:44 Der er 10 kommentarer og
1 løsning

er login sikker nok?

jeg vil vide om min login er sikker nok?

har en kode til login og en som checker alle siderne med en require.


først login:
___________________________________________________
<?
session_start();
session_destroy();
include ("database.php");
$password = md5("$password");
mysql_connect("$db_host","$db_user","$db_pass");
mysql_select_db("$database");
$Record = mysql_query("SELECT * FROM combox WHERE brugernavn = '$brugernavn'  and password = '$password'") or die(mysql_error());
$row = mysql_fetch_array($Record);
if ($row){
$dato = time();
$row[statlogintid] ++;
// checker db for venner
$ven_com = mysql_query("SELECT * FROM venner WHERE ven='$brugernavn' and godkendt='ja'") or die(mysql_error());
// hvis der er venner
while ($ven = mysql_fetch_array($ven_com)){
// henter oplysninger om ven
$check = mysql_query("SELECT * FROM combox WHERE brugernavn='$ven[nick]'") or die(mysql_error());
$online = mysql_fetch_array($check);
// hvis ven er online
if ($online[statlogin] == "1"){
// skriv besked til bruger om at han er online
mysql_query("update venner set status='online', besked='Din ven $brugernavn er nu online' where id='$ven[id]'") or die(mysql_error());
}
}
    $res5 = mysql_query("select * from combox where brugernavn='djsaw'") or die(mysql_error());
    $online = mysql_fetch_array($res5);
    if ($online[statlogin] == "1"){
mysql_query("INSERT INTO `message` ( `id` , `til` , `fra` , `overskrift` , `besked` , `dato` , `status` ) VALUES ('', 'djsaw', 'system', 'login', '$brugernavn er logget ind', 'ingen', 'ny')");
}
mysql_query("UPDATE combox SET andenlogon='$row[sidstelogon]', statlogin='1', ip='$REMOTE_ADDR', statlogintid='$row[statlogintid]', sidstelogon='$dato', alive='$dato' WHERE brugernavn='$brugernavn'");
session_start();
session_register("brugernavn");
session_register("password");
header ("location: http://www.cbox.dk/mainsites/info.php");
}
if ((!$row) && ($login == "true")){
        $popup = "onLoad=\"MM_popupMsg('Der er en fejl')\"";
}
?>


så den del som checker alle siderne..

______________________________________________________


<?
$id = md5($_SERVER['HTTP_ACCEPT_LANGUAGE'].$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_ACCEPT_LANGUAGE'].$_SERVER['GATEWAY_INTERFACE'].$_SERVER['HTTP_USER_AGENT'].$_SERVER['COMPUTERNAME']);
include ("database.php");
include ("../ban/ban.php");
session_start();
   
    // henter alle oplysninger om bruger
    mysql_connect("$db_host", "$db_user", "$db_pass");
    mysql_select_db("$database");
    $res = mysql_query("select * from combox where brugernavn='$brugernavn' and password='$password'");
    $stat = mysql_fetch_array($res);

    // finder tiden
    $tid = time();
    // henter alle forspørgsler som er online i db
    $res1 = mysql_query("select * from combox where statlogin='1'") or die(mysql_error());
    while ($online = mysql_fetch_array($res1)){
    // ligger 3000 sek til
    $online[alive] = $online[alive]+300;
    // hvis siden ikke er blevet opdaterer inden for de 300 sek
    if (($online[alive]) < ($tid)){
    // logger brugeren ud af systemet
    mysql_query("UPDATE combox SET statlogin='' WHERE id='$online[id]'");
    }
    }
   
    // checker om bruger er banned
    if ($stat[ban] == "ja"){
    mysql_query("update combox set ip='$REMOTE_ADDR', trace='$id' where brugernavn='$brugernavn' and password='$password'");
    header ("location: http://www.cbox.dk/ban/ban.php");
    }
    // checker om bruger logget ind
    if (($stat < "1") || ($stat[statlogin] != "1")){
    header ("location: http://cbox.dk/mainsites/logget.php");
    } else {
    $dato = time();
    mysql_query("update combox set alive='$dato', trace='$id' where brugernavn='$brugernavn' and password='$password'");
    }
?>
Avatar billede gymer Nybegynder
23. august 2002 - 16:49 #1
dit login er aldrig sikkert nok så længe det kører vi http. dataerne sendes stadig i plain text. Hvis den skal være sikkert skal den køres via https ellers vil der altid være en usikkerhed. Specielt når den tjekker data ved hvert side besøg så sendes data flere gange usikkert.

Men ud over det ser scriptet fint nok ud der er vist ingen fejl eller mangler.
Avatar billede kube Nybegynder
23. august 2002 - 17:18 #2
der er en function i php 'md5()' der kryptere fx password du kunne evt. anvende den....
Avatar billede gymer Nybegynder
23. august 2002 - 17:22 #3
passwordet sendes stadig som plain text men ja md5 er en god funktion det skal bare lige huskes at den ikke kan dekrypteres derfor skal man sammenligne to krypterede strenge
Avatar billede sylvesternielsen Nybegynder
23. august 2002 - 17:51 #4
kube >>> anvender md5 hvis du kigger en gang til.. *S*
Avatar billede sylvesternielsen Nybegynder
23. august 2002 - 17:51 #5
gymer >>> hvordan skal det ellers sendes? kener ikke andre metoder.
Avatar billede repox Seniormester
24. august 2002 - 02:17 #6
gymer )> Vi kan nok godt blive enige om at brug af SSL er det sikreste, men eftersom det ikke altid er muligheden at bruge og at flere offentlige instutitioner lukker for sikre linier (dankort betaling og så videre) er det også noget man skal tage i betragtning! Personligt synes jeg at md5 er ganske udmærket til et slags community...

dj_saw )> Dit login system ser ganske godt ud, synes det ser lidt voldsomt ud ;), men okay... :)
Avatar billede gymer Nybegynder
24. august 2002 - 09:53 #7
enig shady

dj_saw som tidligere sagt dit scirpt er ok
Avatar billede sylvesternielsen Nybegynder
24. august 2002 - 11:55 #8
hehe.. så i vil mene at der næsten er for meget sikkerhed eller hvad?
Avatar billede gymer Nybegynder
29. august 2002 - 20:09 #9
det kan aldrig blive for sikkert ;) men til community er det fint
Avatar billede sylvesternielsen Nybegynder
29. august 2002 - 21:07 #10
Har sat SSL til på login så det skulle være ok...
Avatar billede gymer Nybegynder
29. august 2002 - 21:11 #11
nice der
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