Kan iemand dit script verderschrijven? 'k Ben eraan begonnen en zit vast. Ben nog niet zo goed in php. De bedoeling is een eenvoudige registratiepagina. Het formulier heb ik al (html kan ik wel een beetje beter).
if (empty($_POST['email']))
$error = "Je moet je emailadres als loginnaam invullen";
elseif (empty($_POST['wachtwoord']))
$error = "Je moet een wachtwoord invullen";
if (!$error)
{
$query ="INSERT INTO users (email, wachtwoord)
VALUES ('$email', '$wachtwoord)";
mysql_query($query) or die (mysql_error());
echo"Dit e-mailadres is al in gebruik";//Wat moet hier komen????
}
else
{
mysql_query("INSERT INTO tabelnaamvanleden (email, wachtwoord) VALUES ('".addslashes($_POST['email'])."', '".md5($_POST['wachtwoord'])."')") or die(mysql_error());
}
}
else
{
?>
<p>Registreren<br>
Welkom, u kunt zicht hier registreren. Als inlognaam wordt uw e-mailadres gebruikt.</p>
siliecom14, je leert hem foute dingen:
- gebruik addslashes
- mss ook htmlspecialchars voor javascript uit te schakelen
- variabelen rechtstreeks kopiëren is onnodig
mysql_query("INSERT INTO tabelnaamvanleden (email, wachtwoord) VALUES ('".addslashes(htmlspecialchars($_POST['email']))."', '".md5($_POST['wachtwoord'])."')") or die(mysql_error());
1 veiligheid is het belangrijkste
2 het toepassen van veiligheidsmaatregelen en het begrijpen ervan is een groot verschil
Jij past veiligheid random toe, wat zal leiden tot het gebruiken van veiligheidsfuncties waar het niet nodig is en het vergeten ervan waar het wel nodig is.
Mag ik vrager waarom je slashes rond een hash gooit van een passwoord waar je de html tekens hebt omgezet naar ASCII code?
Het omzetten van de html tekens is nutteloos omdat je deze toch zowiezo hashed (zet dus ook de html tekens om naar een (kleinere) hash). Een md5 hash bevat NOOIT een quote. Dus hier kan je moeilijk slashes omgooien. Waarom bevat een md5 hash NOOT een quote: omdat het een hexadecimaal GETAL is en getallen niet bestaan uit quotes.
De htmlspecialchars dienen alleen voor het beveiligen van info die later weer bedoeld is om her op te roepen en weer te geven. Wat bij een passwoord al zelden gebeurt, en dus bij een gehashed passwoord nutteloos is om er eerst htmlspecialchars rond te gooien omdat deze toch worden tenietgedaan. Alleen zal je hash er anders uit zien.
Sorry, dat heb ik gedaan omdat ik toen ik begon met php ergens een tutorial had gelezen over een "veilige" login maken en daar deed hij/zij addslashes om een md5. Nu weet ik beter dankzij Nemesiskoens kleine tutorial