hotti: SQL: Injections verhindern bei Verwendung von Perl und DBI

Beitrag lesen

hi,

Kann ich mit dieser Maßnahme eine über $ENV{'QUERY_STRING'} ausgelesene Variable unbehandelt in das SQL-Statement einfügen oder sollte ich vorher noch weitere Vorsichtsmaßnahmen beachten?

Prepared-Statements sind schonmal gut. Wenn Du es noch ein bischen sicherer machen möchtest, prüfe auch noch, ob der Value eines Parameters gültig ist.

Beispiel:
Es gibt 3 Records, in Spalte 2 stehen die Values 1, 2 und 3.

Jetzt kommt ein http-Request mit script?col=2 was funktionieren sollte, weil der Wert 2 in Spalte 2 tatsächlich vorkommt.

Nicht durchgehen sollte ein Request mit script?col=33 weil es den Wert 33 nicht gibt.

Einfachere aber wirksame Prüfungen könnten sein: Ist der Value numerisch, alphanumerisch usw. Auch damit kannst Du verhinderen, dass jemand einen Code einschleust.

Viele Grüße,
Horst Haselhuhn