Johannes Zeller: Behandlung von Benutzer-Eingaben

Beitrag lesen

Hallo Tom,

Deshalb frgate ich ja nach einer Art Checkliste mit Handlungsanweisung.
Wenn es so etwas nicht gibt, sollte man die Gelgenheit nutzen und dieses Thema in diesem Thread ausführlich erörtern.

Hier nur mal ein paar Sachen, die mir gerade einfallen und von denen ich meine, dass man sie beachten muss.

* register_globals deaktivieren, sofern dies möglich ist. Zwar sollten alle
  Scripte so geschrieben sein, dass auch mit register_globals keine Gefahr
  besteht, aber einen Fehler kann man immer machen.
* Alle Variablen vor ihrem Gebrauch initialisieren, es kann ja sein, dass das
  Script auch mal auf einem Server ausgeführt wird, wo register_globals
  aktiviert ist.
* _Niemals_ User-Eingaben über $_GET, $_POST, $_REQUEST, $_COOKIE oder andere
  Wege vertrauen. Das heißt insbesondere, diese Daten...
    * Nicht als Parameter für fopen, include oder andere Operationen mit Dateien
      verwenden.
    * Nicht als Parameter für eval verwenden.
    * Wenn die Daten in eine Datenbank geschrieben werden, müssen sie vorher
      mit den entsprechenden Funktion (mysql_escape_sting, pg_escape_string,
      sqlite_escape_string, ...) behandelt werden.
    * Daten, die entweder direkt oder indirekt (zum Beispiel als gespeicherte
      Daten) vom Besucher eingeben wurden, vor der Ausgabe immer mit
      htmlspecialchars oder strip_tags behandeln. Soll der User trotzdem die
      Möglichkeit haben, den Text zu formatieren, besser eine eigene
      Syntax wie BB-Code verwenden.

Das sind jetzt erstmal nur die Sachen, die mir in der Schnelle in Bezug auf dieses Thema eingefallen sind. Die Liste erhebt natürlich deshalb keinen Anspruch auf Vollständigkeit ;-) Wenn noch jemanden mehr einfällt, bitte hinzufügen.

Schöne Grüße und euch allen noch frohe Weihnachten,

Johannes

--
Das sage ich deshalb, weil ich Hompagebauer bin und Ahnung davon .
ss:| zu:) ls:[ fo:) de:] va:) ch:) n4:| rl:) br:< js:| ie:{ fl:( mo:}