[PHP]Hoofdlettergevoelig Inloggen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben al een tijd aan het klooien met mijn inlog script maar zelfs na hier een poos te zoeken naar vergelijkende topics, krijg het niet voor elkaar om het passwordveld hoofletter gevoelig te krijgen

dit is mijn script:

<?include("dbase.php");
session_start();

if($ingelogd==1)
{
echo "U bent reeds ingelogd";
}

else
{


if($f=='login')
{
$sql = "SELECT count(*) FROM login WHERE username = '$username' AND password = '$password'";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$aantal = $row[0];

if($aantal == 1)
{
$sql = "SELECT * FROM login WHERE username = '$username' AND password = '$password'";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);

$id_login = $row['id_login'];

$ingelogd = 1;

session_register(ingelogd, id_login);
echo "U bent ingelogd!";

}

else
{
echo "Username password combinatie is niet correct";
}
}
}

if($f=='logout')
{
session_unregister(ingelogd);
session_unregister(id_login);
echo "U bent uitgelogd!";
}


echo "
<table>
<form method=\"post\" name=\"formulier\" action=\"login.php\">
<TR><TD>Gebruikersnaam</TD><TD><input type=\"text\" name=\"username\" size=\"25\"></td></TR>
<TR><TD>Wachtwoord</TD><TD><input type=\"password\" name=\"password\" size=\"25\"></td></TR>
<TD align=\"center\"><input type=\"submit\" value=\"Aanmelden\" OnClick=\"document.forms[0].f.value='login'\"></td>
<TD align=\"center\"><input type=\"submit\" value=\"logout\" OnClick=\"document.forms[0].f.value='logout'\"></td>
<input type=\"hidden\" name=\"f\" value=\"\"></tr></form>";


echo "</table>";


?>

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
even voor alle duidelijkheid, ik wil dat iemand met het wachtwoord: test, niet kan inloggen met TEST !

Acties:
  • 0 Henk 'm!

  • _-= Erikje =-_
  • Registratie: Maart 2000
  • Laatst online: 15-09 14:23
1) zet je code tussen
code:
1
[php][/php]
dan is het ook voor ons leesbaar
2) De oplossing voor hOoFdLetterGevoelige wachtwoorden ? versleutelen met md5 en dan de hashes vergelijken

Je slaat dan niet de wachtwoorden op in de database maar de md5 hash daarvan, je zult dan je controle functie ook iets aan moeten passen natuulijk

[ Voor 29% gewijzigd door _-= Erikje =-_ op 11-02-2003 10:54 ]


Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

mysql's strcmp oid gebruiken ipv die =...

Mysql vindt het nodig om anders gewoon case insensitive te vergelijken ipv case sensitive.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is eindelijk gelukt,

deze regel:
$sql = "SELECT count(*) FROM login WHERE username = '$username' AND password = '$password'";

moest deze worden:
$sql = "SELECT count(*) FROM login WHERE username = '$username' AND password = BINARY '$password'";

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op 11 februari 2003 @ 12:07:
Het is eindelijk gelukt,

deze regel:
$sql = "SELECT count(*) FROM login WHERE username = '$username' AND password = '$password'";

moest deze worden:
$sql = "SELECT count(*) FROM login WHERE username = '$username' AND password = BINARY '$password'";
Je kan ook de kolom password BINARY maken, dan hoef je de BINARY niet meer aan je query toe te voegen

Acties:
  • 0 Henk 'm!

Verwijderd

Maar goed, passwords onversleuteld in je database is geen goed idee. Mensen gebruiken dezelfde passwords namelijk ook voor andere sites etc.

Acties:
  • 0 Henk 'm!

  • FailFr8er
  • Registratie: Juli 2001
  • Laatst online: 13:11
Ik vergelijk gewoon md5 hashes met elkaar, is een stuk veiliger, lijkt me een stuk veiliger/handiger als jij dat ook gaat doen :|

Acties:
  • 0 Henk 'm!

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Red Nalie schreef op 11 februari 2003 @ 19:49:
Ik vergelijk gewoon md5 hashes met elkaar, is een stuk veiliger, lijkt me een stuk veiliger/handiger als jij dat ook gaat doen :|
buiten dat is er nog een voordeel aan md5 passwords, namelijk de lengte, die is altijd bekend waardoor een password van 255 tekens evenveel ruimte inneemt als een wachtwoord van 8 tekens :)
Pagina: 1