Computerbeveiliging - Hoe je bad guys buiten de deur houdt

mysql.com - SQL injection?

27-03-2011, 20:53 door Bitwiper, 7 reacties
Op de Full Disclosure maillijst wordt vandaag gemeld dat de website van de makers van MySQL kwetsbaar zou zijn voor "Blind SQL Injection" (zie http://lists.grok.org.uk/pipermail/full-disclosure/2011-March/079901.html).

Nu moet je niet alles geloven wat er op de -ongemodereerde- Full Disclosure maillijst wordt geroepen, maar stel dat het waar is - dan is dat het zoveelste recente SQL injection incident.

Er lijkt sprake van een enorm fundamenteel probleem, namelijk dat het in de praktijk, met de huidige ontwikkeltechnieken en frameworks, nauwelijks mogelijk is om database driven web applicaties veilig te krijgen...
Reacties (7)
27-03-2011, 21:40 door NumesSanguis
Er is nu toch ook een nieuwe, namelijk MySQLi (improved) zou die niet beter moeten werken?
27-03-2011, 23:51 door Bitwiper
Door NumesSanguis: Er is nu toch ook een nieuwe, namelijk MySQLi (improved) zou die niet beter moeten werken?
Ik ben zelf geen web app programmeur, maar wat ik ervan begrijp is dat MySQLi de programmeur wel kan helpen, maar niet kan voorkomen de de programmeur dit soort fouten maakt (zie bijv. http://stackoverflow.com/questions/606099/does-mysqli-class-in-php-protect-100-against-sql-injections en http://stackoverflow.com/questions/3101307/mysqli-prepared-statements-and-mysqli-real-escape-string).

Feit is dat veel DB-driven web apps lek blijken, waaronder PHP-based. Kennelijk gebruikte de programmeur van zo'n lekke PHP site geen MySQLi of deed dat verkeerd. Daarnaast zou MySQLi ook fouten kunnen bevatten (zoeken naar MySQLi vulnerability laat zien dat er vooral een aantal jaren geleden nogal wat bugs in gerapporteerd werden).
28-03-2011, 01:02 door [Account Verwijderd]
[Verwijderd]
28-03-2011, 09:52 door rodin
Het probleem is dat de methode om SQL te gebruiken zoals behandeld in veel internet tutorials en zelfs boeken onveilig is. Zoals Hugo al aangaf is het niet moeilijk om SQL-injection te voorkomen, maar je moet het wel goed aangeleerd krijgen.
28-03-2011, 14:40 door Eghie
Voor de PHPers onder ons, wil je je database goed beveiligen. Gebruik prepared statements onder PDO. En elke parameter moet via bindParam lopen en niet als "string" bij je query gebruikt worden.

Zie voor voorbeeldcode: http://pastie.org/1726137
29-03-2011, 13:03 door Anoniem
Het enige fundamentele probleem ligt bij het kennisniveau van de persoon die de applicatie in elkaar draait. Weten hoe je SQL-injectie kunt voorkomen, hoort toch echt wel tot de basiskennis van iedere webdeveloper.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.