Spring til indhold
WordPress.org

Dansk

  • Temaer
  • Plugins
  • Nyheder
  • Support
  • Om
  • Meetup
  • Vær med
  • Om
  • Få WordPress
Få WordPress
WordPress.org

Plugin Directory

Bastora Security Audit

  • Indsend et plugin
  • Mine favoritter
  • Log ind
  • Indsend et plugin
  • Mine favoritter
  • Log ind

Bastora Security Audit

Af Bastora
Download
  • Detaljer
  • Vurderinger
  • Installation
  • Udvikling
Support

Beskrivelse

Bastora ist ein ehrlicher WordPress-Sicherheits-Check. Statt tausend Schalter ohne Erklärung prüft Bastora Deine Installation gegen einen festen Katalog aus 53 Sicherheitspunkten und zeigt Dir das Ergebnis als Klartext-Ampel direkt in Deinem Dashboard.

Bastora unterscheidet sich von anderen Sicherheits-Plugins in drei Punkten:

  1. Ehrliche Außensicht. Bastora prüft Deine Seite so, wie ein Bot sie sieht: Versionslecks im HTML, offene Verzeichnis-Listen, fehlende Security-Header, sichtbare Endpoints. Die meisten anderen Plugins prüfen nur ihre eigene Konfiguration.
  2. Konflikt-erkennende Auto-Härtung. Härtungen sind ab Werk aktiv. Bastora prüft, ob ein anderes Sicherheits-Plugin (Wordfence, Solid Security, AIOS, Limit Login Attempts und andere) denselben Punkt schon übernimmt, und tritt elegant zur Seite, statt einen Konflikt zu bauen.
  3. Null Konfiguration. Installieren, aktivieren, einmal „Sicherheitsprüfung starten” klicken, fertig. Bastora richtet sich selbst ein.

Was Bastora prüft

  • Zugangssicherheit (11 Punkte): HTTPS-Login, Brute-Force-Schutz, Salt-Keys, geteilte Konten, Login-Verhalten
  • Systemabsicherung (11 Punkte): Datei-Editor, Verzeichnis-Listings, wp-config-Sperre, Debug-Modus, Dateirechte, Revisionen, Kerndatei-Abgleich gegen das Original von wordpress.org mit automatischer Reparatur
  • Informationsschutz (10 Punkte): Generator-Tag, RSD-Link, WLW-Manifest, XML-RPC, REST-API-Benutzer, Pingbacks, X-Powered-By
  • Security-Header (5 Punkte): X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, HSTS
  • Pingbacks (2 Punkte): ausgehende und eingehende Pingbacks
  • Auto-Updates (7 Punkte): nächtlicher Schutz, Minor-/Major-Auto-Updates, Plugin-/Theme-Auto-Updates, verwaiste Erweiterungen
  • Monitoring und Betrieb (7 Punkte): Transients, Revisions-Cleanup, Captcha, WordPress-Version, PHP-Version, /uploads/-PHP-Sperre, Sicherheits-Plugin-Status

Was Bastora härtet (wenn kein Konflikt erkannt wird)

  • WordPress-Version aus HTML und RSS-Feed entfernt
  • RSD-Link und WLW-Manifest entfernt
  • Login-Shake-Effekt deaktiviert
  • Login-Fehlermeldung verallgemeinert (verrät nicht mehr, welche Benutzer existieren)
  • Author-Seiten umgeleitet (verhindert das Aufzählen von Benutzernamen)
  • XML-RPC abgeschaltet (außer ein konkurrierendes Plugin übernimmt das schon)
  • Pingback-XML-RPC-Methoden gesperrt
  • REST-API-Endpoint /users für nicht eingeloggte Anfragen gesperrt
  • Application Passwords deaktiviert
  • Login-Honeypot: verstecktes Formularfeld in der Login-Maske, das Bots ausfüllen und sich damit als Bot zu erkennen geben
  • Brute-Force-Schutz mit IP-Sperre: 5 Fehlversuche → 30 Minuten Sperre. Bei wiederholten Sperren: Eskalation auf 4 Stunden, dann 24 Stunden. Zähler setzt sich nach erfolgreichem Login zurück. IPv6 wird auf dem /64-Präfix gesperrt. Cloudflare- und Reverse-Proxy-IP-Erkennung ist eingebaut.
  • Kerndatei-Auto-Reparatur: Bastora vergleicht täglich Deine WordPress-Kerndateien mit den offiziellen Hashes von wordpress.org. Wird eine Datei manipuliert oder fehlt, lädt Bastora die saubere Originaldatei aus der offiziellen WordPress-ZIP, validiert ihren Hash doppelt und ersetzt die kompromittierte Version automatisch. Die alte Datei wandert zur Spurensicherung in wp-content/uploads/bastora-quarantine/. Du bekommst eine E-Mail mit der Liste der reparierten Dateien. Voraussetzung: Versions-Abgleich-Opt-in aktiv. Bei Hostern mit schreibgeschützten Core-Dateien bleibt die Anzeige + Mail erhalten.
  • Bastora-Schwarm (opt-in): Sobald eine teilnehmende Bastora-Website einen Brute-Force-Angriff erkennt, wandert die Angreifer-IP anonym in einen geteilten Sperrkatalog. Deine Seite holt diesen Katalog alle paar Minuten ab und blockiert die IPs, bevor sie überhaupt anklopfen. Im Gegenzug meldet Deine Seite Angreifer, die Du erkennst. Versendet wird ausschließlich die Angreifer-IP samt Angriffs-Typ und ein anonymer UUID-Token — keine Domain, keine Besucher-IPs, keine Owner-Daten. Aktivierung erfolgt im Onboarding-Wizard oder unter Einstellungen.

Konflikt-erkennend

Wenn eines der folgenden Plugins schon läuft, erkennt Bastora das und deaktiviert nur die überlappenden Bereiche:

  • Wordfence Security
  • Sucuri Security
  • Solid Security (früher iThemes)
  • All-In-One WP Security & Firewall
  • MalCare Security
  • WP Cerber Security
  • Limit Login Attempts Reloaded
  • Disable XML-RPC
  • Disable Application Passwords
  • Really Simple SSL
  • HTTP Headers

Im Dashboard siehst Du pro Härtung im Klartext, warum sie aktiv oder inaktiv ist.

Was Bastora bewusst **nicht** macht

  • Kein erzwungenes TOTP. Solopreneure sperren sich regelmäßig mit Authenticator-Apps aus. Bastora setzt stattdessen auf Brute-Force-Schutz, Rate-Limit und Anomalie-Erkennung.
  • Kein Verstecken der Login-URL. Eine umbenannte Login-URL macht den Passwort-Reset-Link in der Mail kaputt, sobald das Plugin deaktiviert wird. Rate-Limit plus Honeypot ist die saubere Lösung.
  • Keine Cloud-Verbindung ohne Zustimmung. Alle externen Verbindungen (auch Versions-Abgleich gegen wordpress.org) sind ab Werk aus. Sie schalten sich erst ein, wenn Du sie im Welcome-Wizard oder in den Einstellungen ausdrücklich freigibst.

Optionale anonyme Statistik (geplant, in dieser Version noch nicht aktiv)

Eine künftige Plugin-Version wird optionale anonyme Sicherheits-Telemetrie an bastora.de anbieten. In dieser Plugin-Version wird keine Telemetrie gesendet. Der Opt-in-Schalter speichert nur Deine Zustimmung für ein späteres Release. Wenn die Versand-Pipeline später live geht, würden ausschließlich folgende anonymisierten technischen Werte übertragen:

  • WordPress-, PHP- und MySQL-Versions-Strings
  • Locale (zum Beispiel de_DE)
  • Liste der installierten Plugin-Slugs (ohne Versionen)
  • Audit-Ergebnisse (welche der 53 Punkte sind rot, gelb, grün)
  • Eine zufällige anonyme Site-ID (UUID), lokal beim ersten Plugin-Start erzeugt

Was nie übertragen würde: Domain, URL, IP-Adressen, E-Mail-Adressen, Benutzernamen, Beitragsinhalte, Dateiinhalte.

Privacy

Externe Verbindungen

Bastora kontaktiert externe Server in zwei klar getrennten Fällen. Beide sind opt-in. Ab Werk macht das Plugin keine externen Verbindungen.

1. Versions-Abgleich gegen api.wordpress.org (opt-in)

Wenn Du im Welcome-Wizard oder in den Einstellungen „Versions-Abgleich erlauben” aktivierst, fragt Bastora bei einem manuellen Scan die api.wordpress.org nach:

  • der aktuellen WordPress-Core-Version: https://api.wordpress.org/core/version-check/1.7/
  • den offiziellen Datei-Hashes der installierten WordPress-Version (für den Kerndatei-Abgleich): https://api.wordpress.org/core/checksums/1.0/?version=<version>&locale=en_US
  • pro erkennbarem Plugin nach dessen letztem Update-Datum: https://api.wordpress.org/plugins/info/1.0/<slug>.json
  • pro erkennbarem Theme nach dessen letztem Update-Datum: https://api.wordpress.org/themes/info/1.2/?action=theme_information&request[slug]=<slug>

Wenn Bastora bei der täglichen Prüfung manipulierte oder fehlende Kerndateien entdeckt, lädt Bastora zusätzlich die offizielle WordPress-ZIP herunter, um die saubere Originaldatei zu extrahieren:

  • https://downloads.wordpress.org/release/wordpress-<version>.zip

Die ZIP wird einmal pro Version 7 Tage lokal in wp-content/uploads/bastora-quarantine/_core-cache/ gespeichert, um wiederholten Bandbreitenverbrauch zu vermeiden. Vor dem Ersetzen einer Datei prüft Bastora deren MD5-Hash gegen den von api.wordpress.org gemeldeten Wert (Doppel-Sicherung gegen Download-Pannen).

Das ist dieselbe API, die WordPress selbst für seine eigenen Update-Checks nutzt. Übertragen wird nur der Slug pro Plugin oder Theme. Keine Domain, keine Nutzerdaten, keine Besucher-IP. Die Abfragen laufen nur bei manuellem Klick auf den Scan-Button, nie automatisch im Hintergrund. Antworten werden 24 Stunden zwischengespeichert.

Wenn Du diesen Punkt nicht aktivierst, werden die update-relevanten Audit-Punkte als „nicht prüfbar” markiert und es geht keine Anfrage raus.

2. Bastora-Schwarm (opt-in, ab Plugin-Version 0.3.0)

Wenn Du den Bastora-Schwarm im Welcome-Wizard oder unter „Einstellungen → Bastora-Schwarm” aktivierst, tauscht das Plugin Brute-Force-Angreifer-IPs anonym mit anderen teilnehmenden Sites aus. Drei Endpoints sind beteiligt:

  • https://bastora.de/api/swarm-register.php — Einmaliger POST beim Aktivieren. Der Server vergibt einen anonymen UUID-Token. Übertragen wird: die Plugin-Version. Nicht übertragen wird: Domain, URL, IP-Adresse Deiner Besucher, Owner-Daten. Die Server-IP des HTTP-Requests wird nur als gesalzener SHA-256-Hash für ein Rate-Limit gespeichert und ist nicht zurückrechenbar.
  • https://bastora.de/api/swarm-report.php — POST bei Erkennung eines Brute-Force-Angriffs. Übertragen wird: der anonyme Token, die Angreifer-IP, der Angriffs-Typ („login_bruteforce”), die Severity, die Plugin-Version. Nicht übertragen wird: alles andere.
  • https://bastora.de/api/swarm-feed.php — GET-Abruf der aktuellen Sperrliste, alle 5 Minuten via WP-Cron plus on-demand bei Login-Versuchen, jeweils mit 60-Sekunden-Cache und ETag-Optimierung. Im HTTP-Header geht der anonyme Token mit, sonst nichts.
  • https://bastora.de/api/swarm-disconnect.php — POST beim Opt-out in den Einstellungen oder beim Deinstallieren. Übertragen wird: der anonyme Token. Der Server löscht den Knoten unmittelbar.

Der HTTP-User-Agent ist bei allen vier Endpoints statisch „Bastora-Swarm/”, damit WordPress die Domain nicht über den Default-UA mitschickt. Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an Angriffsabwehr). Eingegangene Reports werden serverseitig nach 14 Tagen automatisch gelöscht (Datenminimierung). Sperrlisten-Einträge verfallen nach 72 Stunden ohne neue Meldungen.

3. Anonyme Telemetrie an bastora.de (geplant, in dieser Version nicht aktiv)

Eine künftige Plugin-Version soll optionale anonymisierte Audit-Telemetrie an bastora.de anbieten. In dieser Plugin-Version ist diese Pipeline nicht implementiert — kein wp_remote_post an einen Telemetrie-Endpoint, kein Audit-Payload, keine Übertragung von Scan-Ergebnissen an bastora.de findet im Code statt. Der Opt-in-Schalter in den Einstellungen speichert nur Deine Zustimmung für ein späteres Release.

Wenn die Versand-Pipeline in einem späteren Release live geht, würden die folgenden anonymisierten Werte übertragen:

  • WordPress-, PHP- und MySQL-Versions-Strings
  • Locale-Code (zum Beispiel de_DE)
  • Liste der installierten Plugin-Slugs (ohne Versionen)
  • Theme-Slug des aktiven Themes
  • Audit-Ergebnisse: pro Sicherheitspunkt der Status (passed / warning / failed)
  • Eine zufällige anonyme Site-ID (UUID), lokal beim ersten Plugin-Start erzeugt

Was nie übertragen würde: Domain, URL, IP-Adressen, E-Mail-Adressen, Benutzernamen, Beitragsinhalte, Dateiinhalte, Datenbankinhalte.

Datenschutzhinweis

Vollständige Datenschutzerklärung: https://bastora.de/datenschutz.php
Verantwortliche Stelle laut Impressum: https://bastora.de/impressum.php

Skærmbilleder

Der erste Scan startet — Bastora prüft 53 Sicherheitspunkte in etwa 20 Sekunden.
Der erste Scan startet — Bastora prüft 53 Sicherheitspunkte in etwa 20 Sekunden.
Ergebnis des ersten Scans: Score plus klare Aufteilung in bestanden, Hinweise und offene Punkte.
Ergebnis des ersten Scans: Score plus klare Aufteilung in bestanden, Hinweise und offene Punkte.
Bastora schaltet die Härtungen scharf — wo ein anderes Sicherheits-Plugin schon zuständig ist, lässt Bastora die Hand davon.
Bastora schaltet die Härtungen scharf — wo ein anderes Sicherheits-Plugin schon zuständig ist, lässt Bastora die Hand davon.
Das Dashboard nach Aktivierung: aktueller Sicherheits-Score und jeder Prüfpunkt mit Klartext-Erklärung.
Das Dashboard nach Aktivierung: aktueller Sicherheits-Score und jeder Prüfpunkt mit Klartext-Erklärung.

Installation

  1. Installiere das Plugin aus dem WordPress-Plugin-Verzeichnis oder lade den ZIP-Ordner nach /wp-content/plugins/.
  2. Aktiviere das Plugin im Menü „Plugins”.
  3. Öffne das neue Menü „Bastora” und klicke einmal auf „Sicherheitsprüfung starten”.

Mehr ist nicht zu tun. Bastora richtet sich selbst ein.

FAQ

Brauche ich technisches Wissen, um Bastora zu nutzen?

Nein. Bastora braucht keine Konfiguration. Installieren, aktivieren, scannen — fertig.

Funktioniert Bastora neben Wordfence/Sucuri/Solid Security?

Ja. Bastora erkennt diese Plugins beim Aktivieren und tritt in den überlappenden Bereichen zur Seite. Das Dashboard zeigt Dir, welche Härtungen wegen eines Konflikts inaktiv sind.

Überträgt das Plugin Daten von meiner Seite?

Ab Werk nichts. Die einzigen externen Verbindungen, die diese Version macht, sind opt-in-Versions-Abgleiche gegen api.wordpress.org (nur der Slug, keine Domain, keine Nutzerdaten). Die anonyme Statistik-Pipeline an bastora.de ist in dieser Version nicht aktiv — der Opt-in-Schalter in den Einstellungen speichert nur Deine Zustimmung für ein späteres Release.

Wie nehme ich die Statistik-Zustimmung wieder zurück?

Bastora → Einstellungen → Haken bei „Zustimmung vormerken” raus → speichern. Da in dieser Plugin-Version keine Daten gesendet werden, löscht das Zurücknehmen einfach die gespeicherte Zustimmung.

Wo werden die Daten gespeichert?

Auf deutschen Servern. Bastora arbeitet ausschließlich mit einem deutschen Hoster.

Was passiert, wenn ich Bastora deinstalliere?

Bei normaler Deaktivierung bleiben die Bastora-Einstellungen erhalten. Wenn Du das Plugin per „Löschen” entfernst, werden alle Einstellungen, Audit-Ergebnisse und Site-IDs gelöscht. Härtungen werden automatisch zurückgerollt. Bei aktivem Schwarm-Schutz meldet das Plugin den anonymen Token vorher beim Schwarm-Server ab.

Wie funktioniert der Bastora-Schwarm?

Der Bastora-Schwarm ist ein opt-in-basierter Pool aus teilnehmenden Bastora-Sites. Erkennt eine Site einen Brute-Force-Angriff (5 fehlgeschlagene Logins von derselben IP), schickt sie die Angreifer-IP samt Angriffs-Typ anonym an einen zentralen Server. Wenn mehrere unabhängige Sites dieselbe IP melden oder eine einzelne Site dieselbe IP häufig meldet, wandert die IP in einen Sperrkatalog. Alle teilnehmenden Sites holen diesen Katalog alle paar Minuten ab und sperren die IPs vorbeugend. Eintragungen verfallen automatisch nach 72 Stunden, falls keine neuen Meldungen reinkommen. Bekannte Crawler (Googlebot, Bingbot, Cloudflare etc.) werden serverseitig nie übernommen, damit sie nicht versehentlich gesperrt werden.

Welche Daten verlassen meine Seite, wenn der Schwarm aktiv ist?

Ausschließlich: die Angreifer-IP, der Angriffs-Typ („login_bruteforce”), die Bastora-Plugin-Version und ein anonymer UUID-Token, der beim Aktivieren einmalig generiert wurde. Nicht versendet werden: Deine Domain, Deine URL, Deine Besucher-IPs, Deine Benutzernamen, Deine E-Mail-Adresse, irgendetwas zu Deiner Konfiguration. Auch der HTTP-User-Agent ist statisch („Bastora-Swarm/Version”), damit WordPress die Domain nicht über den Standard-UA mitschickt. Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an Angriffsabwehr).

Anmeldelser

Der er ingen anmeldelser for denne widget.

Bidragsydere & udviklere

“Bastora Security Audit” er open source-software. Følgende personer har bidraget til dette plugin.

Bidragsydere
  • Bastora

Oversæt “Bastora Security Audit” til dit eget sprog.

Interesseret i udvikling?

Gennemse koden, tjek SVN repository, eller abonner på udviklerloggen via RSS.

Ændringslog

0.3.0

  • Neuer Bastora-Schwarm (opt-in). Brute-Force-Angreifer werden anonym zwischen teilnehmenden Bastora-Sites geteilt. Erkennt eine Site einen Login-Bruteforce, schickt sie die Angreifer-IP an bastora.de/api/swarm-report.php. Andere teilnehmende Sites holen die Sperrliste über bastora.de/api/swarm-feed.php ab und blockieren die IP vorbeugend. Aktivierung im Onboarding-Wizard (dritte Opt-in-Karte) oder unter „Einstellungen → Bastora-Schwarm”.
  • Versendet werden ausschließlich die Angreifer-IP, der Angriffs-Typ, die Plugin-Version und ein anonymer UUID-Token. Domain, Besucher-IPs, Owner-Daten und Benutzernamen bleiben auf Deinem Server. Der HTTP-User-Agent ist statisch („Bastora-Swarm/Version”), damit WordPress die Domain nicht über den Default-UA mitschickt.
  • Bekannte Crawler (Googlebot, Bingbot, Cloudflare-Edges, Yandex, WordPress.org) werden serverseitig nie in die Sperrliste übernommen, damit echte Suchmaschinen niemals geblockt werden.
  • Threshold-Logik: eine IP wird erst propagiert, wenn entweder ein einzelner Token sie ≥5 mal meldet ODER mindestens 2 unabhängige Tokens sie je ≥1 mal melden. Verhindert, dass eine kompromittierte Site die Sperrliste vergiften kann.
  • Sperrlisten-Einträge verfallen 72 Stunden nach der letzten Meldung. Token können jederzeit über Einstellungen → Deaktivieren abgemeldet werden — der Server löscht den Token unmittelbar.
  • Drei neue Server-Endpoints in der Privacy-Sektion vollständig dokumentiert (Register, Report, Feed, Disconnect).
  • Beim Deinstallieren des Plugins wird der Token best-effort beim Schwarm-Server abgemeldet, bevor lokale Optionen gelöscht werden.

0.2.9

  • Code-Review-Pass nach der Berichts-Entfernung. Verbliebene Referenzen auf die alte Berichts-Klasse geprüft (keine gefunden), Doc-Kommentar zur Kategorien-Reihenfolge auf die jetzigen Ausgaben (Dashboard-Liste, Onboarding-Card) umgeschrieben.

0.2.8

  • Druckbarer HTML-Bericht entfernt. Der „Bericht öffnen”-Knopf im Dashboard und die Bericht-Sektion in den Einstellungen sind raus. Der vollständige, gedruckte Sicherheitsbericht bleibt dem Bastora-Schutz-Service vorbehalten. Das Plugin zeigt das Scan-Ergebnis weiterhin als interaktive Liste im Dashboard — alle 53 Audit-Punkte mit Ampel, Klartext-Erklärung und Werkstatt-Link.
  • Berichts-Klasse, Berichts-Stylesheet und Berichts-Skript komplett aus dem Plugin entfernt — kleineres Plugin-Paket.

0.2.7

  • Klickbare Status-Kacheln als Filter. Klick auf eine der vier Kacheln im Dashboard (Bestanden, Hinweis, Offen, Nicht prüfbar) filtert die Audit-Liste auf nur diesen Status. Erneuter Klick hebt den Filter wieder auf. Es ist immer nur ein Filter aktiv.
  • Werkstatt-Link pro Audit-Punkt. Jeder Audit-Punkt zeigt einen kleinen „Lösung in der Werkstatt →”-Link, der direkt zum passenden Artikel auf bastora.de/werkstatt mit Schritt-für-Schritt-Anleitung führt. 52 von 53 Punkten haben einen Einzel-Artikel, der Rest fällt auf die Werkstatt-Übersicht zurück.
  • Klartext-Hinweis bei offenen Punkten. Wenn der Audit offene oder Hinweis-Punkte zeigt, erklärt Bastora jetzt sichtbar im Dashboard, warum manche Lücken nicht im Plugin geschlossen werden können (Server-Punkte wie .htaccess, Dateirechte, Security-Header brauchen Hosting-Zugang) und verlinkt auf den Bastora-Schutz-Service als Option.
  • Wizard-Häkchen harmonisiert. Das Opt-in-Häkchen heißt jetzt überall (Wizard + Einstellungen + readme.txt) konsistent „Versions-Abgleich erlauben”. Der Hilfetext im Wizard nennt jetzt auch explizit den Kerndatei-Auto-Repair als Folge — vorher las sich das wie ein reiner Plugin-Update-Check.

0.2.6

  • Bugfix — Sofort-Trigger nach manuellem Scan funktioniert jetzt wirklich. In 0.2.5 prüfte der Sofort-Trigger fälschlich auf denselben Hook wie der tägliche Cron — der tägliche war meist eingeplant, also wurde der Sofort-Job nie geplant. Jetzt eigener Single-Event-Hook (bastora_core_integrity_oneshot), der unabhängig läuft.
  • Bugfix — Cron läuft auch bei stillen Plugin-Updates an. Bestehende Installationen, die per Auto-Update auf 0.2.5 wechseln, bekamen den täglichen Cron nicht eingeplant, weil der Activation-Hook nicht feuert. Ab 0.2.6 stellt das Plugin bei jedem plugins_loaded defensiv sicher, dass der Cron im Schedule liegt.
  • Bugfix — Fataler Fehler ohne PHP-ZIP-Extension verhindert. Wenn die ZipArchive-Klasse auf dem Hoster fehlt, gibt Bastora jetzt einen sauberen Fehlerstatus zurück, statt den Cron-Lauf abzubrechen.
  • Bugfix — Admin-Mail bei ZIP-Download-Fehler. Konnte die offizielle WordPress-ZIP nicht geladen werden (Beta-Versionen, Netzwerk-Aussetzer), erfuhr der Admin bisher nichts. Jetzt geht eine eigene Mail raus mit Liste der erkannten Dateien.
  • Auto-Cleanup des ZIP-Caches bei WordPress-Updates. Beim WP-Update wandert der alte ZIP-Cache jetzt sofort in den Müll, statt 7 Tage als 25-MB-Leiche liegen zu bleiben.
  • Neuer Admin-Block: „Kerndatei-Wache” im Einstellungen-Tab. Zeigt den letzten Repair-Status mit Zeitstempel und die letzten drei Repair-Vorgänge mit reparierten Dateinamen. Damit ist die Wache im Backend sichtbar, nicht nur in der Mail.
  • Hinweis: Auf Sites ohne regelmäßigen Traffic läuft der WordPress-Cron seltener. Bei sehr stillen Sites bitte einen externen Cron-Trigger einrichten (z.B. den eigenen Hoster-Cronjob) — sonst kann sich der tägliche Repair-Lauf verzögern.

0.2.5

  • Auto-Reparatur manipulierter Kerndateien. Der in 0.2.4 eingeführte Kerndatei-Abgleich repariert ab jetzt automatisch. Täglicher Cron-Job (bastora_core_integrity_run) holt die offiziellen Datei-Hashes von api.wordpress.org/core/checksums/1.0/, identifiziert veränderte oder fehlende Kerndateien und ersetzt sie durch die saubere Originalversion aus der offiziellen WordPress-ZIP (downloads.wordpress.org/release/wordpress-X.Y.Z.zip). Die ZIP wird einmal pro Version 7 Tage lokal gecacht, betroffene Dateien werden einzeln extrahiert. Vor dem Ersetzen prüft Bastora den MD5-Hash der extrahierten Datei gegen den erwarteten Wert (Doppel-Sicherung gegen Download-Pannen oder Manipulation der ZIP). Die kompromittierte Originaldatei wandert zur Spurensicherung in wp-content/uploads/bastora-quarantine/JJJJ-MM-TT/. Admin bekommt eine Mail mit der Liste der reparierten Dateien.
  • Sofort-Trigger nach manuellem Scan: Wenn Du im Dashboard scannst und Bastora dabei manipulierte Kerndateien entdeckt, plant der Plugin einen Single-Event-Cron in 5 Sekunden — die Reparatur läuft im Hintergrund, ohne den Scan-Request zu blockieren.
  • Lock-File gegen parallele Repair-Läufe (wp-content/uploads/bastora-quarantine/.bastora-repair-lock, 10 Minuten Gültigkeit).
  • Hoster-Schreibrechte-Erkennung: Wenn der Hoster keinen Schreibzugriff auf das Quarantäne-Verzeichnis erlaubt, fällt Bastora elegant auf Anzeige + Admin-Mail zurück.
  • Quarantäne-Verzeichnis wird per .htaccess (Deny from all) gegen Web-Zugriff geschützt.
  • Privacy-Sektion erweitert um den neuen ZIP-Download-Endpoint.

0.2.4

  • Neuer Audit-Punkt system.11 — Abgleich der WordPress-Kerndateien gegen das offizielle Original. Bastora holt sich von api.wordpress.org/core/checksums/1.0/ die digitalen Fingerabdrücke aller Core-Dateien Deiner WordPress-Version und vergleicht sie mit den Dateien auf Deinem Server. Veränderte oder fehlende Kerndateien werden im Audit-Bericht als kritisch ausgewiesen — der typische Indikator für eingeschleusten Schadcode. Bewusst NICHT geprüft: wp-content/, wp-config.php, readme.html, license.txt. Voraussetzung: Versions-Abgleich-Opt-in aktiv (gleiche Checkbox wie für die Update-Punkte). Ergebnis wird pro WP-Version 24 Stunden zwischengespeichert.
  • Punktezahl wächst von 52 auf 53 Punkte. Systemabsicherung-Kategorie hat jetzt 11 statt 10 Punkte.
  • Privacy-Sektion in der readme.txt um den neuen Checksums-Endpoint erweitert.

0.2.3

  • Plugin-Header-Beschreibung und readme.txt auf Deutsch übersetzt — Plugin-Listing-Seite auf wordpress.org ist damit für die deutsche Zielgruppe lesbar.
  • Screenshots-Sektion wieder aufgenommen, vier Bilder ergänzt (Scan-Start, Scan-Ergebnis, Härtung scharf schalten, Dashboard).
  • Plugin-Assets (Icon, Banner) im WP.org-Plugin-Verzeichnis aktualisiert.

0.2.2

  • Plugin Review Team feedback: all paid-tier markers removed. The dead premium_only_ids() list, the dashboard upsell block, the report’s premium section and the wizard’s paid-service step are gone. The wizard now has three steps (opt-in → scan → activation). No more references to a paid tier inside the plugin code, the admin UI or the printable report.
  • Conflict-check marker constant renamed from BASTORA_PRO_SECURITY_LAYER_VERSION to BASTORA_MANAGED_LAYER_VERSION (neutral naming, no Pro/Premium connotation).
  • readme.txt: paid-service section removed.
  • Telemetry consistency: the opt-in toggle in the welcome wizard and in settings now clearly states that the bastora.de sender pipeline is not active in this plugin version, the toggle only records consent for a future release. readme.txt Privacy section aligned to match.
  • Scanner: check_monitor_03 (captcha plugins detection) and check_monitor_07 (security plugin detection) now read active_plugins directly from the option instead of loading wp-admin/includes/plugin.php. One less require_once of a core file.

0.2.1

  • Plugin-Name auf „Bastora Security Audit” gekürzt (deckungsgleich mit dem Slug, kein Sonderzeichen im Header).
  • Donate link aus readme.txt entfernt (verwies auf die Produktseite, keine echte Spenden-URL).
  • == Screenshots ==-Sektion temporär aus readme.txt entfernt. Wird wieder aufgenommen, sobald die Bilder im WordPress-Assets-Verzeichnis liegen.
  • MU-Plugin-Konflikt-Check liest jetzt zusätzlich eine Marker-Konstante. Quellcode-Kommentar produktneutral formuliert.

0.2.0

  • Neuer Onboarding-Wizard mit schrittweiser Aktivierung der Härtungen plus Vorher-Nachher-Vergleich.
  • Härtungen werden erst nach dem ersten Klick auf „Jetzt absichern” im Wizard scharf geschaltet. Davor läuft das Plugin im reinen Mess-Modus.
  • Bisheriges Welcome-Banner mit Zwei-Häkchen-Block durch den Wizard ersetzt.

0.1.6

  • Plugin Review Team-Feedback: Author URI aus dem Plugin-Header entfernt, da identisch mit Plugin URI. Nur noch eine URI im Header.

0.1.5

  • Welcome-Banner und Bericht: Inline-onclick-Handler durch enqueued JavaScript ersetzt (assets/admin.js, assets/js/report.js).
  • Inline-style-Attribute im Welcome-Banner und im Login-Honeypot in Utility-Klassen (assets/admin.css, assets/css/login-honeypot.css) ausgelagert.
  • Menü-Icon nutzt jetzt das WordPress-Standard-Dashicon dashicons-shield statt eines base64-Inline-SVG.
  • $_POST-Werte im Welcome- und Settings-Handler durchlaufen jetzt zusätzlich wp_unslash + sanitize_text_field, auch wenn sie nur als Bool genutzt werden.
  • Plugin-Header um Author URI und Domain Path ergänzt.

0.1.4

  • Konflikt-Check liest die aktiven Plugins direkt aus der active_plugins-Option und lädt wp-admin/includes/plugin.php nicht mehr unnötig. Vermeidet einen require_once ohne unmittelbar folgenden Funktions-Aufruf.

0.1.3

  • Konflikt-Check erkennt jetzt auch MU-Plugin-basierte Sicherheits-Schichten (Marker-Konstanten/Funktionen). Plugin zieht sich automatisch in den überlappenden Bereichen zurück (XML-RPC, REST users, Security Headers, Brute-Force, Honeypot, Application Passwords), damit Filter nicht doppelt feuern und der Bastora-Honeypot auf Whitelabel-Sites unsichtbar bleibt.

0.1.2

  • External version-check calls to api.wordpress.org are now opt-in by default. Welcome banner uses two separate checkboxes (external calls + anonymous statistics), each independently toggleable in the settings page.
  • Update-related audit points (update.06, update.07, monitor.04) report “not checkable” when the user has not enabled external calls.
  • Privacy section in readme.txt expanded with the exact endpoint URLs and opt-in mechanics.

0.1.1

  • Text domain aligned with plugin slug (bastora-security-audit)
  • Printable report CSS moved from inline style to enqueued stylesheet
  • Contributors list corrected to plugin author account

0.1.0

  • Initial release
  • Scanner covering all 52 audit points
  • 11 conflict-aware filter hardenings
  • Conflict detection for 13 known security plugins
  • Admin dashboard with status card, findings list and hardening overview

Meta

  • Version 0.3.0
  • Senest opdateret 1 dag siden
  • Aktive installationer Færre end 10
  • WordPress-version 6.0 eller højere
  • Testet op til 7.0
  • PHP-version 7.4 eller højere
  • Sprog
    English (US)
  • Tags
    auditBrute Forcehardeningloginsecurity
  • Avanceret visning

Bedømmelser

Der er endnu ikke indsendt nogen anmeldelser.

Your review

Se alle anmeldelser.

Bidragsydere

  • Bastora

Support

Har du noget at sige? Har du brug for hjælp?

Vis supportforum

  • Om
  • Nyheder
  • Hosting
  • Privatliv
  • Fremvisning
  • Temaer
  • Plugins
  • Blokgrupper
  • Lær
  • Support
  • Udviklere
  • WordPress.tv ↗
  • Bliv involveret
  • Begivenheder
  • Doner ↗
  • Fem for Fremtiden
  • WordPress.com ↗
  • Matt ↗
  • bbPress ↗
  • BuddyPress ↗
WordPress.org
WordPress.org

Dansk

  • Besøg vores X (tidligere Twitter) konto
  • Besøg vores Bluesky-konto
  • Besøg vores Mastodon konto
  • Besøg vores Threads-konto
  • Besøg vores Facebook side
  • Besøg vores Instagram konto
  • Besøg vores LinkedIn konto
  • Besøg vores TikTok-konto
  • Besøg vores YouTube-kanal
  • Besøg vores Tumblr-konto
Kode er poesi.
The WordPress® trademark is the intellectual property of the WordPress Foundation.