Sven Rautenberg: PHP Sicherheit: SQL Injection

Beitrag lesen

Moin!

Der Teil über die Prepared Statements kommt aber eindeutig zu kurz. Wenn schon so ein langer Artikel über Sicherheit beim String-Verketten, dann sollte auch die standardisierte Profilösung entsprechend mit Beispiel untermauert werden.

Prepared Statements sind aus meiner Sicht eher als Performance-Steigerung zu verstehen, denn als Security-Lösung. Sie sind genau dann sinnvoll, wenn man ein gleichartiges Statement mehrfach mit unterschiedlichen Daten benutzen will - egal ob lesend oder schreibend.

Das Problem ist nur: Mit PHP muss für jeden Browser-Request immer wieder alles neu initialisiert werden.

Ein Prepared Statement hat daher eigentlich nur begrenzten Performance-Wert und wird daher oft nicht eingesetzt. Und erfordert die Nutzung der MySQLi-Extension, was vielen Programmierern offenbar noch Unbehagen bereitet. Es ist daher praxisfern, diese Lösung als "Profilösung" zu propagieren - denn das ist sie in der Tat: Sie wird, wenn überhaupt, nur in Umfeldern genutzt werden, die aufgrund ihrer Anforderungen eher als extrem zu bezeichnen sind, also extreme Performanceanforderung bei extrem ungewöhnlichem Query- oder Datenaufkommen, extrem ungewöhnliches PHP-Setup (lang laufende Skripte), etc. - und sie erfordern entsprechend ausgebildetes Programmierpersonal.

- Sven Rautenberg