hallo, ik probeer voor een schoolopdracht een register en login systeem te maken. ik kan al een user aan maken die dan ook in de database wordt opgeslagen, maar wanneer ik probeer in te loggen met datzelfde ww en username, doet ie het niet. hieronder staat de code waarin in de foutmelding krijg, dit is van het login gedeelte.

if($stmt->rowCount() == 1){
                        if($row = $stmt->fetch()){
                            $UserID = $row["UserID"];
                            $username = $row["Username"];
                            $hashed_password = $row["Password"];
                            if(password_verify($password, $hashed_password)){
                                // password is correct, so start new session
                                session_start();

                                //store data in session variables
                                $_SESSION["loggedin"] = true;
                                $_SESSION["UserID"] = $UserID;
                                $_SESSION["username"] = $username;

                                //redirect user to welcome page
                                header("location: welcome.php");
                            }
                            else{
                                //invalid password, display error message
                                $login_err = "Invalid username or password.";
                            }


ik krijg dus de 'Invalid username or password' error die ik heb ingesteld. ik kom hier zelf niet uit, kan iemand hier mij asap helpen?
- Ariën - op 13/04/2021 15:41:59

Hoe staat je wachtwoord in je database?


de wachtwoorden worden hoe het nu is gewoon opgeslagen als hoe ze ingevoerd zijn, dus als ik 000 invoer wordt ie opgeslagen als 000
Kan je beredeneren dat als je wachtwoorden niet hash, je ook geen password verify kan doen?

Dan is de uitslag namelijk altijd FALSE.

[size=xsmall]Toevoeging op 13/04/2021 15:48:44:[/size]

Dit is de hash van 000.
Sla die direct op in de database van de betreffende gebruiker.

$2y$10$wIHd7bASOvUWB.esdApC4.eKfGpWwMqet/eTq/4CoYgf2dU3EGGyO
Martin Boersma op 13/04/2021 15:43:05

[quote="- Ariën - op 13/04/2021 15:41:59"]
Hoe staat je wachtwoord in je database?


de wachtwoorden worden hoe het nu is gewoon opgeslagen als hoe ze ingevoerd zijn, dus als ik 000 invoer wordt ie opgeslagen als 000
[/quote]
Ik had dit juist vorige keer al uitgelegd.
Passwoorden moet je altijd omzetten naar een niet-terugkerende hash. Niemand hoeft te weten wat je wachtwoord is.

- Ariën - op 13/04/2021 15:56:10
[quote="Martin Boersma op 13/04/2021 15:43:05"][quote="- Ariën - op 13/04/2021 15:41:59"]Hoe staat je wachtwoord in je database?
de wachtwoorden worden hoe het nu is gewoon opgeslagen als hoe ze ingevoerd zijn, dus als ik 000 invoer wordt ie opgeslagen als 000[/quote]
Ik had dit juist vorige keer al uitgelegd.
Passwoorden moet je altijd omzetten naar een niet-terugkerende hash. Niemand hoeft te weten wat je wachtwoord is.[/quote]
Eens. Wanneer iemand anders jouw systeem gebruikt bega je een strafbaar feit als je wachtwoorden opslaat in de database(!)
Dat is volgens artikel 32, lid 1 van europese AVG wetgeving. Er zijn al vaker boetes voor uitgedeeld. En er wordt uitgebreid gewaarschuwd, en de hele wereld wordt bekend gemaakt met hoe je het dan wel moet doen.

Met andere woorden, iedereen die denkt dat-ie wachtwoorden van anderen mag opslaan is een regelrechte idioot. Zeg niet dat we niet gewaarschuwd hebben.

Reageren