phpbar.de logo

Mailinglisten-Archive

[php] schaedlichen Code filtern

[php] schaedlichen Code filtern

Christoph Jeschke christoph.jeschke at gmail.com
Fre Apr 7 22:24:47 CEST 2006


* G.Wendebourg::

> welche Wege sind hier bekannt, schaedlichen Code aus Benutzereingaben zu 
> erkennen / zu filtern ?

Der erste Schritt ist, statt einer Blacklist (alles erlauben, selektiv
verbieten), eine Whitelist (alles verbieten, selektiv erlauben) zu
verwenden. Du beugst so Programmier- und Logikfehlern vor.

Der zweite Schritt ist, einen sinnvollen Vorrat an Zeichen zu
definieren, welchen Du gefahrlos durch deinen Filter lassen kannst. Um
diesen zu definieren, ist natürlich Wissen über die hinter dem Filter
liegenden Systeme nötig.

So wäre es z.B. sinnvoll, nur Zeichen, welche auf
[a-ZA-Z0-9\.\-\,\_\ ] passen, passieren zu lassen.

Der dritte Schritt ist, diesen Filter dann auch in einem verlässlichen
Zustand in Betrieb zu nehmen. Dazu baust Du dir am besten ein paar
Testfälle, welche Du gegen deinen Filter testest.

Gedanken solltest Du dir zusätzlich um eine oder mehrere weitere
Verteidigungslinien machen. Zum Beispiel solltest Du trotz Whitelist
Prepared Statements verwenden, wenn Du Daten in eine Datenbank eintragen
möchtest. Außerdem kann(!) es sinnvoll sein, Filter wie mod_security
_vor_ dein Skript zu positionieren ("Defense in Depth"). Dies sind nur
Beispiele und sicherlich keine erschöpfende Aufzählung an Maßnahmen.

BTW:
Du plenkst. <http://www.sockenseite.de/usenet/plenken.html

Gruß,
Christoph






php::bar PHP Wiki   -   Listenarchive