vorige Präsentation: A01 - Zugriffskontrolle | zurück zum Buch-Kapitel [esc] | Nächste Präsentation A03 - Software Supply Chain Failures
Auf Platz 2 der OWASP Top 10 2025: Security Misconfiguration.
Sicherheitsrelevante Fehlkonfiguration kann auf jeder Ebene der Anwendung vorkommen: Betriebssystem, Programmiersprache, Framework, Webserver, Programmcode. Die Zusammenarbeit zwischen Entwicklerinnen und Administratorinnen ist wichtig, um eine sichere Konfiguration aller Ebenen zu gewährleisten.
In größeren Projekten / Firmen ist eine Arbeitsteilung üblich zwischen Entwicklung (Development) und Systemadministration (Operations).
Für eine Web-Applikation muss man dabei mindestens folgende Schichten beachten:
Jede dieser Schichten gilt es, richtig zu konfigurieren und Sicherheits-Updates einzuspielen.
Wenn es eine Arbeitsteilung zwischen Development (Leute die Programmieren) und Operations (Leute die die Infrastruktur betreiben) gibt, muss geklärt sein, wer für welche Schicht zuständig ist.
Hardening bedeutet: eine Software so konfigurieren, dass nur das erlaubt ist, was wirklich gebraucht wird — alles andere wird abgeschaltet. Man verkleinert damit die “Angriffsfläche”.
Zwei Szenarien:
Dafür gibt es oft schon fertige Konfigurationen, oder Tutorials.
PHP wird über die Datei php.ini konfiguriert. Viele Einstellungen, die man dort standardmäßig findet,
sind für die Entwicklung gedacht — auf einem Produktionsserver sind sie ein Sicherheitsrisiko.
Ein typisches Beispiel: Fehlermeldungen. Auf dem Entwicklungsrechner will man Fehler direkt im Browser sehen. Auf dem Produktionsserver würde das Angreifer*innen wertvolle Hinweise geben (Dateinamen, Datenbankstruktur, Bibliotheksversionen):
display_errors = On
error_reporting = E_ALL
display_errors = Off
log_errors = On
error_log = /var/log/php/errors.log
Weitere wichtige PHP-Einstellungen für den Produktionsserver:
| Einstellung | Entwicklung | Produktion | Grund |
|---|---|---|---|
display_errors |
On |
Off |
Fehlermeldungen nicht öffentlich zeigen |
expose_php |
On |
Off |
PHP-Version nicht im HTTP-Header verraten |
allow_url_include |
On |
Off |
Einbinden von Remote-Dateien verbieten |
session.cookie_httponly |
— | 1 |
Session-Cookie vor JavaScript schützen |
session.cookie_secure |
— | 1 |
Session-Cookie nur über HTTPS senden |
Mit expose_php = Off wird z.B. verhindert, dass der Server in jedem HTTP-Response den Header X-Powered-By: PHP/8.2.1 mitschickt — diese Versionsinformation hilft Angreifer*innen dabei, bekannte Sicherheitslücken gezielt auszunutzen.
vorige Präsentation: A01 - Zugriffskontrolle | zurück zum Buch-Kapitel [esc] | Nächste Präsentation A03 - Software Supply Chain Failures
/
#