Hallo allemaal!
Ik probeer in simpel inlog form te maken via informatie uit een database. De informatie uit de database komt door een registratie form die ik heb gemaakt. Er is nu dus een probleem met mijn code waar hij geen foutmelding over geeft. Het enige wat hij doet is de hele tijd "echo "U heeft een onjuist login/wachtwoord ingevoerd";" uitvoeren dus ik heb heel erg het gevoel alsof ik iets ben vergeten. Ik heb op het moment niet iemand dichtbij die misschien wel het probleem ziet, maar daarom hoop ik dat jullie mij kunnen helpen. Hier is mijn code:


<?php
session_start();
	
	$connect = new mysqli("localhost", 
			"root",
			"usbw", 
			"cms");
		if($connect ->connect_errno)	
		{
		        printf("Connect failed %s", $db->connect_error);
			return false;
		}
			
	if (isset($_POST['submit'])) 
	{	
		$loginpost = $_POST['login'];	
		$wachtwoordpost = $_POST['wachtwoord'];
			
		$loginpost = $_SESSION['login'];
			
		$uitkomst = mysqli_query($connect, "SELECT * FROM auteurs") or die($uitkomst . "<br/><br/>" . mysqli_error());
		$row = mysqli_fetch_array($uitkomst);
		$login = $row['Login'];
		$wachtwoord = $row['Wachtwoord'];
		if ($row["Login"] == $loginpost && $row["Wachtwoord"] == $wachtwoordpost)		
		{
			echo "U bent ingelogd!";
		}
		else 
		{
			echo "U heeft een onjuist login/wachtwoord ingevoerd";
		}
	}
}
?>


Ik hoop dat jullie mij hiermee kunnen helpen want ik word er helemaal gek van!
Alvast bedankt!

Als je nog steeds vast loopt kan je misschien je recente code hier plaatsen, mochten andere mensen jou nog willen helpen, dat ze dan niet feedback op je oude code geven.
** quoteknip**

Nee, alles werkt nu :P. Ik was vergeten dat omdat we md5 gebruikte dat je het natuurlijk ook terug moet keren naar een normaal password omdat hij hem anders gaat vergelijken met de md5 encryptie.
Jochem, quote aub alleen als het toegevoegde waarde heeft. Een hele reactie quoten, zeker als deze direct boven je reactie staat, voegt vaak weinig (/niets) toe.
Als je wilt quoten, gebruik dan alleen dat deel wat nodig is om op te reageren.
Daarmee houd je het (voor mij) overzichtelijker/leesbaarder.
Jochem Odendaal op 01/03/2018 10:07:30
Ik was vergeten dat omdat we md5 gebruikte dat je het natuurlijk ook terug moet keren naar een normaal password omdat hij hem anders gaat vergelijken met de md5 encryptie.

Met hashing kun je niet terugkeren naar hetzelfde password (maar met MD5 is het wel mogelijk om snel een soortgelijk wachtwoord uit te rekenen (of op te zoeken) die dezelfde hash heeft, (mede) daarom is MD5 niet langer toereikend als middel om wachtwoorden te versleutelen).

Hashing en encryptie zijn trouwens twee compleet verschillende dingen. Deze termen zijn dus ook niet vrij uitwisselbaar. Wanneer je deze termen door elkaar gebruikt krijgen toehoorders (met enig verstand van zaken) ook niet gauw de indruk dat de spreker het verschil snapt.
Het enige wat je bij het inloggen doet is een hash maken van het ingevulde wachtwoord, en deze vergelijken met wat er in de database staat. Als deze overeenkomt, dan is er een match, als deze niet overeenkomt is er geen match en mag er niet worden ingelogd.

Op die manier hoef je zelf het wachtwoord van je gebruikers niet te weten. Wel is het zoals Thomas al zei van belang dat je geen md5() gebruikt omdat deze onveilig is, en met al weinig rekenkracht te raden is.
Verder is hashing niet het enige waar een veilig inlogsysteem aan moet voldoet. Ook moet er in het algemeen een defensie komen om brute-force attacks tegen te gaan, waarbij (geautomatiseerde script of personen constant een wachtwoord proberen te raden. Natuurlijk is het de bedoeling dat je na ongeveer 5 pogingen dit voor diegene een halt toeroept.

Verder is dit maar een klein aandeel van de nodige beveiligingen. Dus als je echt wat veilig wilt maken, en je wil weten wat de 'pittfalls' zijn en de do/don't, dan raad ik dit artikel aan:
https://www.owasp.org/index.php/Authentication_Cheat_Sheet

Maar voor een schoolopdracht is het best basaal, maar het kan je misschien wel extra punten opleveren. ;-)

Reageren