Input checken
Dit is een functie die je het best kan gebruiken voordat er iets met input van een gebruiker gedaan word. Ook is dit script gemaakt om voor enige output gebruikt te worden, zodat je geen errors krijgt als je zou gaan redirecten als er iets fout is.
De functie veranderd superglobals net iets, dat ze automatisch gecontroleerd worden en veiliger zijn. (d.m.v. htmlentities [htmlentities nu alleen nog maar met de check: html] en addslashes)
De checks, die ik erop heb gemaakt zijn:
num: controleert of de waarde een getal is.
mysql: zet mysql_real_escape_string over de waarde heen (dit is niet echt een controle)
length: controleert de lengte van de waarde (aantal tekens), maar je kan deze ook zo instellen dat hij, bij een getal controleert of dit getal tussen 2 waardes inzit.
aantal mogelijkheden: Als er maar een aantal mogelijkheden zijn (bijvoorbeeld selectboxen, checkboxen of radiobuttons), kan hier ook op gecontroleerd worden.
html: haalt een htmlentities over de waarde
De checks moet je op deze manier in een array zetten:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$var = array();
// Eerst zet je de superglobal waarin gezocht moet worden, bijvoorbeeld GET:
$var = array('GET' => '');
// Dan ga zet je de waarde die bij de superglobal hoort als een array:
$var = array('GET' => array());
// Nu kijken we welke keys van de superglobal we willen controleren, voorbeeld: De id (GET variabele)
$var = array('GET' => array('id' => ''));
/* Alles hiervoor was de opzet, nu het werkende spul: */
// Waarom wil je deze waarde controleren? In dit voorbeeld natuurlijk wil je zien of het een getal is:
$var = array('GET' => array('id' => 'NUM'));
// Misschien mag het getal alleen tussen de 1 en de 100 zitten:
$var = array('GET' => array('id' => 'NUM Length(1, 100, INT)'))
// Zoals je ziet, kan je zoveel controles erin zetten als je wilt. Dit kan gewoon achter elkaar.
// Behalve bij de check de aantal mogelijkheden check, want die werkt zo:
$var = array('GET' => array('select' => array('test', 'test1', 'test2')))
?>
Je kunt natuurlijk zelf nog allerlei controles verzinnen. Zet die dan wel op de goede plek in de functie ;-)
ik hoop dat dit een nuttige functie is.
Ik heb het zo gemaakt dat die functie helemaal niet nodig is. Ik bedoel:
Dit is een functie die kan helpen bij de beveiliging van een script (voornamelijk tegen SQL injection, maar het kan voor meer dienen). Met deze functie is je script niet per definitie veilig!
Voorbeeld: http://futronic.awardspace.com/check_input.php
Gesponsorde koppelingen
PHP script bestanden
Er zijn 9 reacties op 'Input checken'
Om te reageren heb je een account nodig en je moet ingelogd zijn.
PHP hulp
0 seconden vanaf nu