Ik heb een website waar dit voorkomt http://www.blablabla.nl/newspage.php?id=1 alleen is het is niet anti sql injection. Dus ik heb geprobeerd op te beveiligen. nu heb ik dit toegevoegd.
maar helaas werkt dit niet! Ik gebruik het programma Havij om te testen en kan gewoon in de database komen! Tenzij als ik is_numeric function toevoegd kan hij er niet erin. Maar is dit dan wel veilig genoeg? en mysql_real_escape is toch meer dan genoeg om SQL Injection te voorkomen?
Input kan je goed beveiligen dmv mysql_real_escape_string();
Voor velden die enkel met numerieke waardes kunnen werken, zal je is_numeric moeten gebruiken.
Je kan dmv strip_tags nog html code uit de input halen voordat je het in de database gooit.
htmlentities / stripslashes gebruiken bij het ophalen van je data uit de db om het goed weer te geven op je scherm
Als ik het goed heb moet je de string in je SQL string escapen in plaats van ervoor. (maar weet dit niet zeker). Heb alles op de volgende manier gedaan:
<?php
$qString = "Select * FROM eenTabel WHERE id = '".mysql_real_escape_string($id)."'";
?>
Met het boven genoemde programma (Havij) laat dit zien.
Analyzing http://blablablbalbal.nl/newspage.php?id=1
Host IP: xxx.xxx.72.103
Web Server: Apache/2
Keyword Found: vijf
Injection type is Integer
DB Server: MySQL
Selected Column Count is 7
Finding string column
Valid String Column is 2
Target Vulnerable :D
Current DB: (***geheim**)
Ik heb net het programmatje geprobeerd en moet zeggen dat het toch zeker netjes is. Maar ik probeer net hetzelfde als wat jij doet en bij mij kan hij er niet in komen? Heb je niet ergens anders een lek?
Ik heb net het programmatje geprobeerd en moet zeggen dat het toch zeker netjes is. Maar ik probeer net hetzelfde als wat jij doet en bij mij kan hij er niet in komen? Heb je niet ergens anders een lek?
Mag ik jouw code eens bekijken die je hebt gebruikt?