Avatar billede konnerup Nybegynder
22. august 2012 - 21:41 Der er 4 kommentarer

Sikkerhed i login system

Jeg er for nyligt blevet udsat for et angreb, gennem mit login system, fordi det ikke var sikret ordentligt.. Jeg kan ikke rigtigt få sikkerheden til at virke... Her er min kode, til at tjekke login:

<?php

session_start();

$brugernavn = $_POST['brugernavn'];
$adgangskode = $_POST['adgangskode'];

$user = "****";
$pass = "********";

if($user == $brugernavn && $pass == $adgangskode) {
   
    $_SESSION['logind'] = true;   
    header("Location: admin.php");
   
} else {
   
    $msg = "Forkert brugernavn eller adgangskode!";
    header("Location: index.php?msg=".$msg);
   
}

?>


Jeg har prøvet at indsætte følgende:

$brugernavn = mysql_real_escape_string($_POST['brugernavn']);
$adgangskode = mysql_real_escape_string($_POST['adgangskode']);

Men så kan jeg ikke logge ind, og jeg får bare fejlbeskeden tilbage..

Jeg håber nogen kan hjælpe mig :)
Avatar billede olebole Juniormester
23. august 2012 - 14:25 #1
<ole>

Det er ikke en særlig sikker kode, men det behøver ikke være dén kode, der er problemet. Et login bør foregå udfra et databaseopslag - og password bør ligge i hashed form i databasen. mysql_real_escape_string gør intet brugbart for dig.

Derudover er der jo hele resten af dit adminsystem, som kan indeholde huller. Det er ikke umiddelbart muligt at sige noget om, hvor personen er kommet ind, men mulighederne er sikkert mange  =)

/mvh
</bole>
Avatar billede konnerup Nybegynder
23. august 2012 - 16:13 #2
Jeg har inkluderet et script på alle siderne, der tjekker om sessionen er sat.. Det er måske ikke godt nok?
Jeg har os tænkt på at lave selve login systemet om og, som du siger, lave koden krypteret..

Kan mysql_real_escape_string når jeg laver det om?
Avatar billede konnerup Nybegynder
23. august 2012 - 16:13 #3
bruges* ^
Avatar billede olebole Juniormester
23. august 2012 - 18:39 #4
Nej, mysql_real_escape_string er del af det gamle MySQL-API. Den var et forsøg på at hacke sig ud af sikkerhedsproblemer i et fejlkonstrueret database API. Idag bruger man ikke længere MySQL-API'et, men MySQLI eller PDO.

"Det er måske ikke godt nok?" >> Det kan jeg ikke vide. Jeg aner ikke, hvad du gør  =)
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