Door
John De Zon
op 04-09-2015 14:53
gewijzigd op 05-09-2015 18:38
4.475 views
Hallo,
ik ben bezig met een registratie script voor m'n website. Ik heb me voorgenomen de beveiliging zo goed als ik kan te maken vanaf het begin.
Is dit script veilig? En waarom geeft mysql_real_escape_string niets terug?
- ik zie nog steeds geen character encoding aanduidingen, maar mogelijk vallen deze buiten het script; stel je deze wel expliciet in bij het maken van een connectie met je database (met een _set_charset() functie)? geef je ook het HTML-document een charset-indicatie via een header?
- je kopieert een heleboel variabelen, dit vertroebelt de leesbaarheid; hoe simpeler een script, hoe overzichtelijker (en daarmee veiliger) deze meestal is
- het is beter om dit te doen:
<?php
if (goede situatie) {
// doe dingen
} else {
// maak bezwaar
}
?>
in plaats van dit:
<?php
if (niet goede situatie) {
// maak bezwaar
} else {
// doe dingen
}
?>
Omdat een ontkenning van "niet goede situatie" niet per definitie een "goede situatie" impliceert.
- je kopieert een heleboel variabelen, dit vertroebelt de leesbaarheid; hoe simpeler een script, hoe overzichtelijker (en daarmee veiliger) deze meestal is
Ja, dat wordt er bedoeld met het onnodig kopieëren van variabelen. Je kan die $_POST variabelen namelijk prima gebruiken. De '@' moet wel weg, dat is vies want je moet juist geen foutmeldingen onderdrukken. In je .htaccess kan je dit voor 'live' website in 'productie' netjes afvangen en loggen.
De karakter-encoding houdt in welke tekenreeks-encoding je gebruikt. Dit is vaak UTF-8, maar oudere scripts gebruiken vaak ISO-8859-1.