Web Application Security in der Praxis, Teil 2

Schutz vor Cross-Site Scripting sowie Local and Remote File Inclusion

Seite: 2/4

Anbieter zum Thema

Was passiert auf dem Server?

Die example.php gibt nach dem Aufruf das aus, was der URL über den GET-Parameter übergeben wird. Eine mögliche GET-Übergabe des Strings „Search-Security“ würde wie folgt geschehen:

http://localhost/example.php?string=Search-Security

Wird diese URL mit Enter aufgerufen, so gibt sie den Text „Search-Security“ aus. Als nächstes übergeben wir nun Java-Skriptcode anstelle eines einfachen Text-Strings:

http://localhost/example.php?string=alert(ALARM)

Erscheint beim Aufruf dieser URL ein Popup mit dem Text „ALARM“, dann ist die PHP-Seite anfällig für eine XSS-Attacke.

Wie lässt sich diese XSS-Lücke beseitigen?

Eine Möglichkeit, die vorher beschriebene XSS-Lücke zu beseitigen, basiert auf der PHP-Funktion htmlspecialchars(). Diese Funktion wandelt Sonderzeichen in HTML-Codes um. Wendet man diese Funktion auf das vorherige Sourcecode-Beispiel an, so würde das Ergebnis wie folgt aussehen:

XSS Beispiel

Ein Aufruf dieser optimierten PHP-Seite mit einem Java-Skriptcode, der per GET-Parameter übergeben wird, lässt einen möglichen XSS-Angriff ins Leere laufen: Der Aufruf von http://localhost/example.php?string=alert(ALARM) würde alert(ALARM) als String ausgeben, und den darin enthaltenen Java-Skriptcode nicht ausführen.

Inhalt

  • Seite 1: Wie kommt es zu XSS-Schwachstellen?
  • Seite 2: Was passiert auf dem Server?
  • Seite 3: Local und Remote File Inclusions
  • Seite 4: Cross Site Request Forgery

(ID:2049815)