Ik ben bezig met een functie voor het checken of gebruikers zijn ingelogd, en of ze de juiste rank hebben.

Ik heb dit gemaakt:
<?
function Secure($pagerank)
{
if(!isset($_COOKIE['md5Username']))
{
exit('U bent niet ingelogd. Gelieve dat eerst te doen.');
}
elseif(isset($_COOKIE['md5username']))
{
$sql = "SELECT * FROM ".$prefix."_users WHERE md5username = '".$_COOKIE['md5username']."'";
$res = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows ($res) == 1)
{
while ($row = mysql_fetch_array ($res))
{
if($row['rank'] != $pagerank)
{
exit('U bent niet gemachtigd om deze pagina te kunnen zien.');
}
}
}
}
}
?>

Is zoiets juist?

Mvg,
Jens
dat zou je moeten kijken via een webserver... ik kan niet echt scripten, dus begrijp ze ook niet heel erg, maar wat is zie is goed (y)
Ziet er wel ok uit, alleen als je aantal rijen wil tellen volstaat alleen het id ook, of in dit geval de rank is weer iets sneller. Voor 1 row hoef je ook geen while lus te doen... waar haal je eigenlijk die prefix vandaan?
ik vraag me altijd of of het gaat dat ik een else structuur maak voor als je WEL correct bent ingelogd..
die prefix zet ik in mijn config.php...
dat is gewoon zodat ik dit script later nog kan gebruiken
Jens schreef op 23.12.2006 15:49
ik vraag me altijd of of het gaat dat ik een else structuur maak voor als je WEL correct bent ingelogd..


verklaar je nader... ik snap niet precies wat je bedoeld..
Gebruik nooit cookies om iemand in te loggen, die zijn té eenvoudig te onderscheppen en/of na te maken. Een cookie staat tenslotte op de pc van de bezoeker, zelfs m'n moeder kan een cookie aanpassen!

Ga sessies gebruiken en sla eveneens een hash van het ip-adres op. Zodra er dan een ander ip-adres wordt gebruikt, dan is er blijkbaar iemand met het sessie-id vandoor gegaan. Je gooit hem/haar dan direct uit je systeem, uiteraard met een ip-block.

Verder mag userinput (POST, GET, COOKIE) nooit en te nimmer ongecontroleerd in een query worden opgenomen. Dat is vragen om problemen. Gebruik mysql_real_escape_string() om de boel te beveiligen.
en hoe doe ik dat dan? ^^
met die sessies
je bent nu binnen als je een cookie aanmaakt met de naam "md5Username". (En wat frank zei: SQL injection!"

Reageren