Door
Fabian webstars
op 13-08-2015 14:45
gewijzigd op 13-08-2015 14:47
1.493 views
Hallo
Ik ben nog steeds bezig met het script wat ik wil gaan gebruiken om in te loggen, maar ik loop weer tegen een nieuwe fout aan. ik zie hem niet. het script werkt redelijk goed behalve dat ik steeds dezelfde foutmelding krijg: "wachtwoord is niet correct". ziet iemand wat ik verkeerd doe?
dit is een deel van mn script waar de fout zit:
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
$req = mysql_query('
SELECT username, password,id,groep
FROM users
WHERE username="'.$username.'"');
$rowCount = mysql_num_rows($req);
$dn = mysql_fetch_array($req);
if($rowCount = 0 AND $dn['password']!=sha1($password)) {
$form = true;
$message = 'Gebruikersnaam en wachtwoord zijn niet correct.';
}
else {
if($rowCount = 0) {
$form = true;
$message = 'Gebruikersnaam is niet correct.';
}
else {
if($dn['password']!=sha1($password)) {
$form = true;
$message = 'wachtwoord is niet correct.';
}
?>
---
overigens zou ik niet verraden dat de gebruikersnaam bestaat. Bij een gevonden gebruikersnaam hoeft de hacker alleen nog maar een berg wachtwoorden te proberen.
---
Toevoeging op 13/08/2015 15:15:01:
danwel: if($rowCount == 0 .......
met == ipv =
---
overigens zou ik niet verraden dat de gebruikersnaam bestaat. Bij een gevonden gebruikersnaam hoeft de hacker alleen nog maar een berg wachtwoorden te proberen.
---
Toevoeging op 13/08/2015 15:16:05:
voor een controle van het password in php code valt ook wel wat te zeggen.
Een query zou gelogd kunnen worden op de server. Als het (al dan niet gehashte) password dan in de query stond, staat die ook in de logs.
if (foute situatie) {
doe niets
} else {
doe iets
}
Hoe heb je nu de garantie dat als je de "else" bereikt dat er sprake is van een "goede situatie"? Mogelijk mis je iets in je logica en bevindt je je dan helemaal niet de goede situatie!
Beter is dus
if (goede situatie) {
doe iets
} else {
doe niets
}
"Als een hacker de logfiles kan lezen is ie toch al binnen."
klopt, maar het kan ook een medegebruiker van de server zijn.
En log files hebben vaak minder aandacht mbt beveiliging, dus die kunnen op allerlei plaatsten gekopieerd komen te staan. Ook in onbeveiligde plekken
>> En log files hebben vaak minder aandacht mbt beveiliging, dus die kunnen op allerlei plaatsten gekopieerd komen te staan. Ook in onbeveiligde plekken
Ik neem aan dat dit niet aan de orde is wanneer je een eigen VPS huurt?
hangt er uiteraard vanaf wie je allemaal toegang geeft tot je server.
En of je de logfiles niet af en toe naar je pc / dropbox / usbstick kopieert ter backup of om gemakkelijker te kunnen zoeken naar query's die fouten opleverden.