Sicherheitskorrekturen erscheinen jeweils für die aktuelle Fassung. Ältere Versionen werden nicht rückwirkend gepflegt.
| Version | Unterstützt |
|---|---|
| 1.0.x | ja |
Bitte keine öffentlichen Issues für Sicherheitsprobleme anlegen. Ein öffentlicher Hinweis ist auch für alle anderen Installationen dieser Vorlage einsehbar, bevor eine Korrektur bereitsteht.
Zwei Wege stehen offen:
- Über GitHub – auf der Registerkarte Security dieses Projekts unter Report a vulnerability. Der Bericht ist nur für die Projektbetreuung sichtbar.
- Über die Website – das Kontaktformular auf maehbarkeitsindex.de mit dem Betreff „Sicherheit MFI Example Page".
Hilfreich für die Einordnung sind: betroffene Version, PHP-Version, Hosting-Umgebung, eine möglichst knappe Beschreibung des Ablaufs und die erwartete Auswirkung.
Sie erhalten in der Regel innerhalb von sieben Tagen eine Rückmeldung. Nach einer Korrektur wird die Schwachstelle im Changelog vermerkt – auf Wunsch mit Nennung der meldenden Person.
Wer den Code prüft, findet diese Stellen zuerst:
| Bereich | Verhalten |
|---|---|
| Zugangsdaten | Liegen in config.php außerhalb des öffentlichen Verzeichnisses und sind von der Versionsverwaltung ausgenommen |
| Einrichtungsassistent | Nur erreichbar, solange keine Konfiguration existiert; der erste Aufruf reserviert ihn für einen Browser; nach Abschluss löscht er sich selbst |
| Datenbank | Ausschließlich vorbereitete Anweisungen über PDO, keine Zeichenkettenverkettung |
| Ausgabe | Alle Werte werden maskiert; Auszeichnungen aus API-Texten nur über eine feste Liste ohne Attribute |
| Fehler | Erreichen den Browser nie im Klartext – Pfade und Ablaufinformationen landen ausschließlich in var/error.log |
| Web-Cron | Nur mit Token erreichbar, verglichen in konstanter Zeit |
| Seitenauflösung | Slugs gegen einen festen Ausdruck geprüft, kein Zugriff außerhalb der Seitenverzeichnisse |
| Externe Ressourcen | Keine – alle Dateien werden vom eigenen Server ausgeliefert |
Einige Punkte liegen außerhalb dessen, was die Vorlage selbst absichern kann:
config.phpniemals in ein öffentliches Repository aufnehmen. Ist es doch geschehen, müssen beide API-Schlüssel und das Datenbankpasswort neu erzeugt werden.runtime.debuggehört im laufenden Betrieb auffalse. Andernfalls werden Serverpfade für jeden Besucher sichtbar.public/setup.phpsollte nach der Einrichtung nicht mehr auf dem Server liegen. Der Assistent entfernt sich selbst; schlägt das mangels Schreibrechten fehl, weist er darauf hin.- Das Verzeichnis
var/darf nicht über das Web erreichbar sein. Bei der empfohlenen Struktur mitpublic/als Webroot ist das automatisch der Fall.