Title: Bastora Security Audit
Author: Bastora
Published: <strong>June 10, 2026</strong>
Last modified: June 10, 2026

---

Search plugins

![](https://ps.w.org/bastora-security-audit/assets/banner-772x250.png?rev=3568084)

![](https://ps.w.org/bastora-security-audit/assets/icon-256x256.png?rev=3568084)

# Bastora Security Audit

 By [Bastora](https://profiles.wordpress.org/mathiasva/)

[Download](https://downloads.wordpress.org/plugin/bastora-security-audit.0.2.3.zip)

 * [Details](https://wordpress.org/plugins/bastora-security-audit/#description)
 * [Reviews](https://wordpress.org/plugins/bastora-security-audit/#reviews)
 *  [Installation](https://wordpress.org/plugins/bastora-security-audit/#installation)
 * [Development](https://wordpress.org/plugins/bastora-security-audit/#developers)

 [Support](https://wordpress.org/support/plugin/bastora-security-audit/)

## Description

**Bastora** ist ein ehrlicher WordPress-Sicherheits-Check. Statt tausend Schalter
ohne Erklärung prüft Bastora Deine Installation gegen einen festen Katalog aus **
52 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 (10 Punkte):** Datei-Editor, Verzeichnis-Listings, wp-config-
   Sperre, Debug-Modus, Dateirechte, Revisionen
 * **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.

#### 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 52 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/`
 * 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>`

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. Anonyme Telemetrie an bastora.de (geplant, in dieser Version nicht aktiv)**

Eine künftige Plugin-Version soll optionale anonymisierte Telemetrie an bastora.
de anbieten. **In dieser Plugin-Version ist diese Pipeline nicht implementiert —
kein `wp_remote_post`, kein Payload, keine Übertragung 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

## Screenshots

[⌊Der erste Scan startet — Bastora prüft 52 Sicherheitspunkte in etwa 20 Sekunden.⌉⌊
Der erste Scan startet — Bastora prüft 52 Sicherheitspunkte in etwa 20 Sekunden.⌉[

Der erste Scan startet — Bastora prüft 52 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.⌉[

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
.⌉[

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.⌉[

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-Berichte und Site-
IDs gelöscht. Härtungen werden automatisch zurückgerollt.

### Wann kommt der gedruckte Bericht?

In einer der nächsten Plugin-Versionen. Ab 0.1.0 steht der Bericht als HTML direkt
im Dashboard zur Verfügung.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Bastora Security Audit” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Bastora ](https://profiles.wordpress.org/mathiasva/)

[Translate “Bastora Security Audit” into your language.](https://translate.wordpress.org/projects/wp-plugins/bastora-security-audit)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/bastora-security-audit/),
check out the [SVN repository](https://plugins.svn.wordpress.org/bastora-security-audit/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/bastora-security-audit/)
by [RSS](https://plugins.trac.wordpress.org/log/bastora-security-audit/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 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.2.3**
 *  Last updated **13 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [audit](https://wordpress.org/plugins/tags/audit/)[Brute Force](https://wordpress.org/plugins/tags/brute-force/)
   [hardening](https://wordpress.org/plugins/tags/hardening/)[login](https://wordpress.org/plugins/tags/login/)
   [security](https://wordpress.org/plugins/tags/security/)
 *  [Advanced View](https://wordpress.org/plugins/bastora-security-audit/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/bastora-security-audit/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/bastora-security-audit/reviews/)

## Contributors

 *   [ Bastora ](https://profiles.wordpress.org/mathiasva/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/bastora-security-audit/)