De parameter $value in de functies wordt niet gecontroleerd, waardoor de SQL-clausules " WHERE ip = '$value'" gevoelig zijn voor SQL-injectie. Klinkt misschien wat cryptisch, maar dit script is daardoor alleen veilig als je het niet onveilig gebruikt.
Verder zitten er wat minder elegante (verouderde) programmeertechnieken in, zoals het gebruik van 1 en 0 waar je true en falze zou verwachten.
Wat ik zelf trouwens doe bij dit soort oplossingen, is met sleep() nog een vertraging inbouwen van 2 ^ x seconden voor x inlogpogingen. Je krijgt dan namelijk een exponentieel oplopende vertraging:
2 ^ 0 = 1 s
2 ^ 1 = 2 s
2 ^ 2 = 4 s
2 ^ 3 = 8 s
2 ^ 4 = 16 s
2 ^ 5 = 32 s
Die vertraging maakt het minder makkelijk om een botnet met honderden of duizenden IP-adressen te misbruiken.
Bedankt voor het antwoord.
De value is de IP. Die zal ik uit de $_server halen. Dus geen probleem hier(dacht ik toch)
true false had ik ook al gezien. Ik dacht dat dit ook nooit zo gebruikt werd in php. leek me ook moeilijk te lezen op deze manier.
Extra vertraging lijkt me wel goed. Hoe doe je dat? Op session, IP,...?
De $_SERVER variabelen zijn allen per definitie verdacht, escaping is dus noodzakelijk. Zelfs al zou dit niet zo zijn, dan nog is het verstandig om te blijven escapen. De extra vertraging doe je op IP, omdat sessies eenvoudig te omzeilen zijn: een nieuwe sessie forceren is zo gebeurd.