Hallo,
Ik had een vraag. Wat zijn de bugs in de meeste criminals maar vooral Hoe los je ze op?
Posten dus maar
Bug 1
Bug naam: +/- Bug
Bug omschrijving: Als je +9999+ doet krijg je het al heb je het niet.
Oplossing
Hallo,
Ik had een vraag. Wat zijn de bugs in de meeste criminals maar vooral Hoe los je ze op?
Posten dus maar
Bug 1
Bug naam: +/- Bug
Bug omschrijving: Als je +9999+ doet krijg je het al heb je het niet.
Oplossing
Onveilig :p (mysql injections)
+/- bug oplossen door ctype_digit
Hoe werkt die +- Bug precies?
Als je +99999999+ doet krijg je het gewoon al heb je het niet
wat zijn mysql injections? hoe werkt dat?
Ja die +/- bug zijn injections of een mysql query in je link uitvoeren als die niet goed is beveiligd
voorbeeld?
Kijk
Als er alleen dit staat zijn de inputs niet beveilig tdie kun je het beste beveiliging met preg_match
En met deze stukje php code kun je hem beveiligen vanaf alle !@#$%^*()_ zeg het maar
Moet je elke input beveiligen? hoezo?
Als een persoon overal iets kan intypen kan hij dus zodoende sql injections aanroepen, dus in een textveld kan hij de +9999 bug uitvoeren.
Vandaar dat er checks moeten ingebouwd worden zoals andytjuh zei.
Als er dan letters/;:+- etc word ingevoerd zorgt de preg_match ervoor dat het niet kan.
Daarom moet elke input worden beveiligd.
Veiligheidslekken zijn geen bugs, bugs = fouten (spelfouten, errors e.d)
Waar men over praat zijn dus 'veiligheidslekken' of gewoon in het kort 'lekken'.
-------------
XSS, SQL injection, en ga zo maar door .. criminals source zitten er vol mee, .. de meeste zijn ook PHP4 / 3 dat is ook een groot probleem van de veiligheid..
Gebruik is een echte functie genaamd is_numeric...
Deze functie kijkt gewoon alleen of je alleen maar cijfers invult.
is_numeric is een betere functie om te kijken of iets een cijfer is dan als je ctype_digit gebruikt.
is_numeric is gewoon een functie om te kijken of iets numeric is.
ctype_digit is eigenlijk voor letters etc.
maar als je iets met letters wil dan kan je voor de zekerheid toch is_numeric doen omdat je volgens mij met ctype_digit meerdere tekens erbij kan doen..
het als het goed is allemaal ietsie veiliger..
Ook handig is als je cijfers in de database zet als je dan het volgende gebruikt:
(int) $getal.
Die int zorgt er voor dat het getal dan wel een int is wanneer het letter is en je gebruikt een or die dan weet je oo dit werkt niet.
Cijfers moet je juist beveiligen met (int) en niet met mysql_real_escape_string..
ja
Citaat van NielsBToon Meeris_numeric is gewoon een functie om te kijken of iets numeric is.
ctype_digit is eigenlijk voor letters etc.
maar als je iets met letters wil dan kan je voor de zekerheid toch is_numeric doen omdat je volgens mij met ctype_digit meerdere tekens erbij kan doen..
het als het goed is allemaal ietsie veiliger..
Ook handig is als je cijfers in de database zet als je dan het volgende gebruikt:
(int) $getal.
Die int zorgt er voor dat het getal dan wel een int is wanneer het letter is en je gebruikt een or die dan weet je oo dit werkt niet.
Cijfers moet je juist beveiligen met (int) en niet met mysql_real_escape_string..
Dit is niet waar, ctype_digit is wel degelijk veiliger!
<?php
$getal = -1;
if(!is_numeric($getal))
{
echo 'Volgens is_numeric is '.$getal.' niet numeriek!';
}
else
{
echo'Volgens is_numeric is '.$getal.' numeriek!';
}
if(!ctype_digit($getal))
{
echo 'Volgens ctype_digit is '.$getal.' niet numeriek!';
}
else
{
echo'Volgens ctype_digit is '.$getal.' numeriek!';
}
?>
Toon Meer
Voer dit script maar eens uit!
Het zal de volgende output geven:
Dus dit betekent dat die +/- bug zal blijven bestaan!
Wou het net melden, ben blij dat Mrmees het even laat zien.
is_numeric laat nog tekens door, ctype_digit(); helemaal niet.
ctype_digit(); is wel degelijk een stuk veiliger dan is_numeric();
Hier vind je meer info over alle soorten..
Heb je nog geen account? Registreer je nu en word deel van onze community!