Sicherheit
FG Media Audit 0.9.1 schützt schreibende und sensible Verwaltungsfunktionen mit WordPress-Berechtigungsprüfungen, Nonces und zusätzlichen Zustandsprüfungen. Diese Seite beschreibt ausschließlich Mechanismen, die im aktuellen Projektcode nachvollziehbar sind.
Berechtigungen
Section titled “Berechtigungen”Die Plugin-Oberfläche und die relevanten Aktionen verwenden manage_options. Die AJAX-Endpunkte sind nur als wp_ajax_* registriert; öffentliche wp_ajax_nopriv_*-Varianten existieren nicht.
CSV-/JSON-Export, Backup-Download, Import, Rollback, Verwendungsscan und Direktbearbeitung prüfen die erforderliche Administratorberechtigung serverseitig.
Nonces
Section titled “Nonces”Schreibende und sensible Aktionen verwenden WordPress-Nonces. Dazu gehören insbesondere:
- Verwendungsscan
- Direktbearbeitung
- Importvorschau und bestätigter Import
- Rollback
- CSV-/JSON-Export
- Backup-Download
Nonces ersetzen keine Berechtigungsprüfung; der aktuelle Code verwendet für diese Vorgänge zusätzlich manage_options.
Importdateien
Section titled “Importdateien”Importdateien werden vor dem Parsing geprüft. Der aktuelle Import begrenzt die Datei auf 10 MB, akzeptiert nur CSV oder JSON und prüft den tatsächlichen HTTP-Upload sowie die Lesbarkeit. Wenn finfo verfügbar ist, wird zusätzlich ein plausibler MIME-Typ verlangt.
Importierte Inhalte werden feldabhängig bereinigt:
| Feld | Verarbeitung |
|---|---|
| Titel | sanitize_text_field() |
| Alt-Text | sanitize_text_field() |
| Beschriftung | wp_kses_post() |
| Beschreibung | wp_kses_post() |
| Dateiname | kontrollierte Dateinamen- und Pfadprüfung im Renamer |
Vor dem Schreiben wird ein serverseitig gespeicherter Vorschauplan erneut gegen den aktuellen WordPress-Zustand geprüft. Eine veraltete Vorschau wird vor dem ersten Schreibvorgang abgebrochen.
Direktbearbeitung
Section titled “Direktbearbeitung”Beim Öffnen eines Mediums erzeugt der Server einen Fingerprint des aktuellen Attachment-Zustands. Beim Speichern muss dieser Fingerprint weiterhin zum aktuellen Zustand passen. Zwischenzeitliche Änderungen werden dadurch nicht still überschrieben.
Eine Dateiumbenennung aus der Direktbearbeitung benötigt zusätzlich eine ausdrückliche Bestätigung.
Dateiumbenennung
Section titled “Dateiumbenennung”Der Renamer führt vor einer Umbenennung unter anderem folgende Prüfungen aus:
- Bild-Attachment und lokale Quelldateien müssen vorhanden sein.
- Die Dateien müssen innerhalb des aktuellen WordPress-Upload-Verzeichnisses liegen.
- Der neue Dateiname darf keinen Pfad enthalten.
- Die Dateiendung muss unverändert bleiben.
- Zielpfade dürfen noch nicht existieren.
- Das Zielverzeichnis muss beschreibbar sein.
- Die registrierte WordPress-Bildfamilie muss konsistent auf bekannte Dateistämme abbildbar sein.
- Der aktuelle Zustand muss dem zuvor geplanten Rename-Zustand entsprechen.
Bei einem Schreibfehler versucht das Plugin, bereits ausgeführte Teilschritte wieder auf den Ausgangszustand zurückzuführen. Ein solcher Wiederherstellungsversuch ist kein Ersatz für ein unabhängiges Site-Backup.
Backups und Rollback
Section titled “Backups und Rollback”Vor bestätigten Änderungen wird ein History-Eintrag mit den geplanten alten und neuen Werten gespeichert. Ein Rollback überschreibt spätere Änderungen nicht blind: Nur Zustände, die noch exakt zum erwarteten Ergebnis des ursprünglichen Vorgangs passen, sind automatisch rücksetzbar.
Weitere Details stehen unter Backups und Rollback.
CSV-Export
Section titled “CSV-Export”Der CSV-Export schützt Zellen, deren Inhalt von Tabellenkalkulationen als Formel interpretiert werden könnte. Beim Reimport entfernt FG Media Audit nur den von diesem Export gesetzten Schutzpräfix wieder.
Direkte PHP-Aufrufe
Section titled “Direkte PHP-Aufrufe”Die PHP-Dateien der WordPress-Runtime schützen den WordPress-Kontext mit defined('ABSPATH') || exit; beziehungsweise dem entsprechenden WordPress-Uninstall-Guard. Das separate Entwicklungswerkzeug tools/sync-fg-core.php ist als Kommandozeilen-Script ausgelegt. Zusätzlich enthalten die direkten Plugin-Verzeichnisse leere index.php-Dateien mit dem Projektkommentar silent is gold.
Öffentliche Schnittstellen
Section titled “Öffentliche Schnittstellen”FG Media Audit registriert keine eigenen öffentlichen REST-Routen und keine nicht authentifizierten AJAX-Endpunkte. Das Plugin lädt seine eigenen JavaScript- und CSS-Assets nur auf der eigenen Adminseite.
Die separate, standardmäßig aktivierte FG-Core-Statusmeldung ist unter Datenverarbeitung dokumentiert.