Security
Das Thema
Sicherheit ist in einer Zeit der freien Verfügbarkeit von Daten,
unzähligen Bot-Netzen und SPAM-Versand ein aus Web-Anwendungen nicht mehr wegzudenken. Hierbei
spielt nicht nur der rechtliche Hintergrund eine große Rolle, sondern auch die Sicherheit und
Stabilität der Hosting-Systeme ist direkt von der Sicherheit und der Stabilität der
Applikationen abhängig. Aus diesem Grund ist es unerlässlich, dass die eingesetzten Tools
oder Frameworks bereits
secury and stable by design sind.
Die folgende Liste zeigt Features des APF auf, die bereits out-of-the-box für Sicherheit sorgen:
-
Input and output filters
As of the 1.5 relase, the framework possesses generic input and output filters, that are executed
on page or front controller startup to safeguard user input (GET and POST). This generates a
kind of "basic security" and increases the security of an application compared to other tools
explicitly .
Since the 1.9 branch, the input and output filters can be influenced by the developer. Hence,
you can now write special input filters for special cases to safeguard your application so much
better.
-
Form filters
As of the 1.9 branch, filters can also be applied to text fields within APF forms. This enables
you to secure your application on dedicated places (e.g. login form) and avoid SQL injection
by filtering problematical characters or escape sequences.
-
Konfiguration:
Konfigurationsaufgaben werden konsequent über den configurationManager
gezogen. Dieser verwendet keine Parameter aus dem REQUEST und wird nur über die Applikation
selbst verwendet. So werden XSS-Attacken schon vom Design her nicht möglich!
-
URL-Layout:
Das URL-Layout muss einem definierten Schema entsprechen. Mögliche XSS-Lücken fallen
daher bei Verwendung der Komponenten LinkHandler und
FrontcontrollerLinkHandler dadurch auf, dass eine URL nicht geparst werden kann
und die genannten Komponenten einen Fehler anzeigen.
-
Templates:
Der PageController verarbeitet Templates nicht wie viele andere Frameworks als PHP-Skripten.
PHP-Code, der evtl. durch XSS-Lücken eingeschleust werden kann - sollte die auf dem
Framework aufsetzende Software derartige Lücken aufweisen - wird daher nicht
ausgeführt, sondern lediglich zur Anzeige gebracht.
-
Bootstrap-Architektur:
Durch die Bootstrap-Architektur (=alle Requests werden über eine zentrale Datei abgewickelt)
können Anfragen wie /content.php?seite=http://casts.150m.com/expo/expo1? keinen
Schaden anrichten.
-
Steuerparameter:
Steuerparameter in URLs, die direkt auf das Inkludieren von Templates Einfluss haben greifen
nicht direkt und unkontrolliert auf das Dateisystem durch, sondern gelten nur in einem definierten
Namespace. Wird ein Template nicht gefunden, so wird ein Applikationsfehler angezeigt, was das
Auslesen von System-Dateien nicht möglich macht. Steuerparameter in FrontController-Actions
werden zusätzlich über eine Konfiguration abstrahiert und greifen nicht direkt auf
Filesystemressourcen zu.
Analysen zum Thema XSS und Sicherheit können im Artikel
Hacking & das APF oder
im Forum unter
http://forum.adventure-php-fra...p?f=5&t=21
nachgelesen werden. Das Dokument
PHPSec.pdf
beinhaltet weitere Informationen zum Thema PHP-Sicherheit.
Kommentare
Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese
hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
Für diesen Artikel liegen aktuell keine Kommentare vor.