Ik heb een klein beveiligings-script geschreven voor een website, voor mij werkt het perfect, maar er komen zeer veel klachten van mensen die niet meer kunnen inloggen. Zelf heb ik het probleem nog niet kunnen reconstrueren. Wel heb ik ondervonden dat het op sommige computers lukt, bij andere niet. Het probleem is niet browser-gebonden, als het met ff niet gaat gaat het ook niet met ie of andere. Het is niet netwerk of firewall -gebonden, computers in hetzelfde netwerk/achter dezelfde firewall geven verschillende resultaten.
Het enige waar een lijn in te trekken lijkt is het besturingssysteem, de computers die ik heb gevonden waar de boel niet werkt zijn allemaal vista (2). Maar naar het schijnt werkt het ook niet op andere systemen. Met de cookie instellingen heeft het niets te maken, aangezien andere websites die cookies gebruiken wel werken op deze 2 vista computers.
Het gaat over deze website:
http://www.helicon.be, om in te loggen moet je op het logo klikken.
Hier is de relevante code:
<?php
if(isset($_POST['submit'])){
$ww=md5($_POST['ww']);
include("dblogin.php");
$query="SELECT * FROM ww WHERE ww='$ww'";
$result=mysql_query($query)or die("Fout bij het uitvoeren van de wachtwoordquery");
$num=mysql_num_rows($result);
mysql_close();
if($num=="0"){
header("Location: http://www.helicon.be/menu/fout_ww.htm");
exit;
}elseif($num>1){
echo "This website is protected against hackers";
}elseif($num==1){
$naam=mysql_result($result,0,"naam");
$ww=mysql_result($result,0,"ww");
$url=mysql_result($result,0,"url");
setcookie('naam',$naam);
setcookie('ww',$ww);
echo "Wachtwoord is OK, aanmelden...";
echo '<script>window.top.location="'.$url.'";</script>';
}
}
?>
Op de pagina wordt dan nagekeken of er een cookie is gemaakt:
<?php
function secu($type){
$naam=$_COOKIE['naam'];
$ww=$_COOKIE['ww'];
$num="0";
switch($type){
case"leden":
if($naam=="leden"){
include("dblogin.php");
$query="SELECT * FROM ww WHERE naam='$naam' AND ww='$ww'";
$result=mysql_query($query)or die("Fout bij het uitvoeren van de wachtwoordquery");
$num=mysql_num_rows($result);
mysql_close();
}
break;
case"bestuur":
if($naam=="bestuur"){
include("dblogin.php");
$query="SELECT * FROM ww WHERE naam='$naam' AND ww='$ww'";
$result=mysql_query($query)or die("Fout bij het uitvoeren van de wachtwoordquery");
$num=mysql_num_rows($result);
mysql_close();
}
break;
}
if($num=="0"){
$secu=false;
}elseif($num>1){
$secu=false;
}elseif($num==1){
$secu=true;
}
return $secu;
}
if(!secu("leden")){
echo "This website is protected against hackers";
echo '<script>window.top.location="http://www.helicon.be/index.htm";</script>';;
exit;
}
?>
Is er iemand die ziet waar het aan kan liggen?
Alvast bedankt!
1.140 views