[PHP] bösartigen Content aus POST, GET, etc. rausfiltern

BartTheDevil89

Devilution Media
ID: 87739
L
2 Mai 2006
3.960
103
Hallo,

da ich derzeit immer wieder mit der gleichen Art von POST und GET-Variablen arbeite, habe ich mir überlegt, dass es einfacher wäre mir ne Funktion zu erstellen, die jeweils alles bösartige aus den Variablen rausfiltert. Dafür allerdings würde mich interessieren was ihr bei den folgenden Inhalten jeweils drüberlaufen lassen würdet:

1. Zahl
2. 1 Begriff
3. Text
4. Dateiupload

Also auf jedenfall zum Beispiel strip_tags, aber was würdet ihr bei den jeweiligen Sachen noch drüberlaufen lassen, damit am Ende nur was erlaubtes bei rauskommt? ;)
 
1) Nen Check mit is_numeric(). Wenn false, dann verwerfen/abbrechen.
2) Wenns wirklich nur 1 Wort ist, alles verwerfen, das Leerzeichen enthält. Evtl. die gleichen Checks wie bei normalen Text.
3) Je nach Anwendungsgebiet. Bei Ausgaben z.B. htmlspecialchars/htmlentities oder bei Datenbankeinträgen mysql_(real_)escape_string (analog dazu für das jeweilige Datenbanksystem)
4) Da gibt es eigentlich nicht viel zu checken. Die Dateigröße und ggf. Dateitypbeschränkung, je nachdem, was mit der Datei passieren soll.
 
Man macht es nach dem whitelist-Prinzip, man prüft ob dort auch genau das drinne ist, was man erawartet.
Nebenbei kenne ich noch PHPIDS aber keine Ahnung wie gut und effektiv das ist.
 
oh..danke für den tip! PHPIDS ist etwas, was ich schon lange gesucht habe.
ich spiel gerade damit rum, bis auf einige kleinigkeiten ist es sehr ausgereift..