O'Reilly logo

PHP-Sicherheit: PHP/MySQL-Webanwendungen sicher programmieren by Stefan Esser, Christopher Kunz

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

1857.10 Fazit
Die Datei exit.php
Nun müssen noch alle Links in unserer Applikation besonders gene-
riert werden. Alle externen Links müssen folgendermaßen aussehen:
<a href="exit.php?page=http://www.php-sicherheit.de">Link</a>
Generierung eines Links
Hier wird nun dafür gesorgt, dass, bevor auf eine externe Seite ver-
zweigt wird, die Session-ID nicht mehr im Referrer erscheint. Dies
geschieht mithilfe einer Umleitung auf sich selbst. Erst wenn keine Ses-
sion-ID mehr in der URL vorhanden ist, wird auf die eigentliche
externe Seite verzweigt.
Dieses Beispiel ist freilich stark vereinfacht dargestellt. Die Über-
gabe einer kompletten URL könnte z.B. von Spammern genutzt wer-
den, um Links zu deren per E-Mail beworbenen Seiten über Ihre Seite
laden zu lassen – Ärger ist damit vorprogrammiert. Sie können jedoch
bei der Generierung Ihrer Seiteninhalte für jede externe URL eine ein-
deutige ID übergeben und diese in einer Datenbank speichern. So kön-
nen nur URLs, die in Ihrer Whitelist stehen, von Ihrer Anwendung aus
aufgerufen werden, und Sie haben zusätzlich die Möglichkeit, anhand
der URL-Datenbank unerwünschte Links zu entfernen.
7.10 Fazit
Das Session-System von PHP kann mit einfachen Mitteln sicherer
gemacht werden, ein kompletter Schutz ist aber nahezu unmöglich.
Trotzdem sollten alle erdenklichen Mittel zum Schutz ergriffen wer-
den, denn ein Imageverlust bzw. ein Datenklau durch eine Session-
Attacke rechtfertigt den Entwicklungsaufwand für diese Sicherheits-
mechanismen auf jeden Fall.
7 Sessions186

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required