{"id":316373,"date":"2026-06-10T20:24:18","date_gmt":"2026-06-10T20:24:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/bastora-security-audit\/"},"modified":"2026-07-14T14:22:12","modified_gmt":"2026-07-14T14:22:12","slug":"bastora-security-audit","status":"publish","type":"plugin","link":"https:\/\/yor.wordpress.org\/plugins\/bastora-security-audit\/","author":22020153,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.3.8","stable_tag":"1.3.8","tested":"7.0.1","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"Bastora Security Audit","header_author":"Bastora","header_description":"Honest 52-point security audit for WordPress. Hardens login, server configuration, version leaks and security headers without conflicts.","assets_banners_color":"c3c8c6","last_updated":"2026-07-14 14:22:12","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/bastora.de\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":592,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.2":{"tag":"0.2.2","author":"mathiasva","date":"2026-06-10 20:23:57"},"0.2.3":{"tag":"0.2.3","author":"mathiasva","date":"2026-06-10 21:17:06"},"0.2.4":{"tag":"0.2.4","author":"mathiasva","date":"2026-06-11 12:20:59"},"0.2.5":{"tag":"0.2.5","author":"mathiasva","date":"2026-06-11 12:37:00"},"0.2.6":{"tag":"0.2.6","author":"mathiasva","date":"2026-06-11 13:01:42"},"0.2.7":{"tag":"0.2.7","author":"mathiasva","date":"2026-06-11 19:11:54"},"0.2.9":{"tag":"0.2.9","author":"mathiasva","date":"2026-06-15 07:16:07"},"0.3.0":{"tag":"0.3.0","author":"mathiasva","date":"2026-06-22 11:06:42"},"1.2.5":{"tag":"1.2.5","author":"mathiasva","date":"2026-06-30 10:01:56"},"1.2.7":{"tag":"1.2.7","author":"mathiasva","date":"2026-07-07 10:10:45"},"1.2.8":{"tag":"1.2.8","author":"mathiasva","date":"2026-07-07 19:32:09"},"1.2.9":{"tag":"1.2.9","author":"mathiasva","date":"2026-07-08 21:16:41"},"1.3.0":{"tag":"1.3.0","author":"mathiasva","date":"2026-07-10 08:32:53"},"1.3.6":{"tag":"1.3.6","author":"mathiasva","date":"2026-07-11 22:23:45"},"1.3.8":{"tag":"1.3.8","author":"mathiasva","date":"2026-07-14 14:22:12"}},"upgrade_notice":{"1.3.8":"<p>Sicherheits-Update: Der Login-Schutz laesst sich nicht mehr ueber gefaelschte Kopfzeilen austricksen, gesicherte Fundstuecke sind nicht mehr aufrufbar. Ausserdem werden deutsche WordPress-Installationen korrekt geprueft.<\/p>","1.3.7":"<p>Der Status erneuert sich nach Updates von selbst, verf\u00fcgbare Updates erscheinen als Hinweis, und abweichende Plugins\/Themes lassen sich per Klick gezielt reparieren statt riskant neu zu installieren.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3568084,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3568084,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3568084,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3568084,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.2","0.2.3","0.2.4","0.2.5","0.2.6","0.2.7","0.2.9","0.3.0","1.2.5","1.2.7","1.2.8","1.2.9","1.3.0","1.3.6","1.3.8"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3568084,"resolution":"1","location":"assets","locale":"","width":1280,"height":720},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3568084,"resolution":"2","location":"assets","locale":"","width":1280,"height":720},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3568084,"resolution":"3","location":"assets","locale":"","width":1280,"height":720},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3568084,"resolution":"4","location":"assets","locale":"","width":1280,"height":720}},"screenshots":{"1":"Der erste Scan startet, Bastora pr\u00fcft 62 Sicherheitspunkte in etwa 25 Sekunden.","2":"Ergebnis des ersten Scans: Score plus klare Aufteilung in bestanden, Hinweise und offene Punkte.","3":"Bastora schaltet die H\u00e4rtungen scharf, wo ein anderes Sicherheits-Plugin schon zust\u00e4ndig ist, l\u00e4sst Bastora die Hand davon.","4":"Das Dashboard nach Aktivierung: aktueller Sicherheits-Score und jeder Pr\u00fcfpunkt mit Klartext-Erkl\u00e4rung."}},"plugin_section":[],"plugin_tags":[2439,1174,31093,1184,600],"plugin_category":[38,54],"plugin_contributors":[266569],"plugin_business_model":[],"class_list":["post-316373","plugin","type-plugin","status-publish","hentry","plugin_tags-brute-force","plugin_tags-firewall","plugin_tags-hardening","plugin_tags-malware","plugin_tags-security","plugin_category-authentication","plugin_category-security-and-spam-protection","plugin_contributors-mathiasva","plugin_committers-mathiasva"],"banners":{"banner":"https:\/\/ps.w.org\/bastora-security-audit\/assets\/banner-772x250.png?rev=3568084","banner_2x":"https:\/\/ps.w.org\/bastora-security-audit\/assets\/banner-1544x500.png?rev=3568084","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bastora-security-audit\/assets\/icon-128x128.png?rev=3568084","icon_2x":"https:\/\/ps.w.org\/bastora-security-audit\/assets\/icon-256x256.png?rev=3568084","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bastora-security-audit\/assets\/screenshot-1.png?rev=3568084","caption":"Der erste Scan startet, Bastora pr\u00fcft 62 Sicherheitspunkte in etwa 25 Sekunden."},{"src":"https:\/\/ps.w.org\/bastora-security-audit\/assets\/screenshot-2.png?rev=3568084","caption":"Ergebnis des ersten Scans: Score plus klare Aufteilung in bestanden, Hinweise und offene Punkte."},{"src":"https:\/\/ps.w.org\/bastora-security-audit\/assets\/screenshot-3.png?rev=3568084","caption":"Bastora schaltet die H\u00e4rtungen scharf, wo ein anderes Sicherheits-Plugin schon zust\u00e4ndig ist, l\u00e4sst Bastora die Hand davon."},{"src":"https:\/\/ps.w.org\/bastora-security-audit\/assets\/screenshot-4.png?rev=3568084","caption":"Das Dashboard nach Aktivierung: aktueller Sicherheits-Score und jeder Pr\u00fcfpunkt mit Klartext-Erkl\u00e4rung."}],"raw_content":"<!--section=description-->\n<p><strong>Bastora<\/strong> ist ein ehrlicher WordPress-Sicherheits-Check. Statt tausend Schalter ohne Erkl\u00e4rung pr\u00fcft Bastora Deine Installation gegen einen festen Katalog aus <strong>62 Sicherheitspunkten<\/strong> und zeigt Dir das Ergebnis als Klartext-Ampel direkt in Deinem Dashboard.<\/p>\n\n<p>Bastora unterscheidet sich von anderen Sicherheits-Plugins in drei Punkten:<\/p>\n\n<ol>\n<li><strong>Ehrliche Au\u00dfensicht.<\/strong> Bastora pr\u00fcft Deine Seite so, wie ein Bot sie sieht: Versionslecks im HTML, offene Verzeichnis-Listen, fehlende Security-Header, sichtbare Endpoints. Die meisten anderen Plugins pr\u00fcfen nur ihre eigene Konfiguration.<\/li>\n<li><strong>Konflikt-erkennende Auto-H\u00e4rtung.<\/strong> H\u00e4rtungen sind ab Werk aktiv. Bastora pr\u00fcft, ob ein anderes Sicherheits-Plugin (Wordfence, Solid Security, AIOS, Limit Login Attempts und andere) denselben Punkt schon \u00fcbernimmt, und tritt elegant zur Seite, statt einen Konflikt zu bauen.<\/li>\n<li><strong>Null Konfiguration.<\/strong> Installieren, aktivieren, einmal \u201eSicherheitspr\u00fcfung starten\" klicken, fertig. Bastora richtet sich selbst ein.<\/li>\n<\/ol>\n\n<h4>Was Bastora pr\u00fcft<\/h4>\n\n<ul>\n<li><strong>Zugangssicherheit (11 Punkte):<\/strong> HTTPS-Login, Brute-Force-Schutz, Salt-Keys, geteilte Konten, Login-Verhalten<\/li>\n<li><strong>Systemabsicherung (15 Punkte):<\/strong> Datei-Editor, Verzeichnis-Listings, wp-config-Sperre, Debug-Modus, Dateirechte, Revisionen, <strong>Kerndatei-Abgleich gegen das Original von wordpress.org mit automatischer Reparatur<\/strong>, <strong>t\u00e4glicher Abgleich aller Plugins gegen wordpress.org<\/strong>, <strong>t\u00e4glicher Abgleich aller Themes gegen wordpress.org<\/strong>, <strong>Schadcode-Pr\u00fcfung der Theme-Dateien<\/strong>, <strong>Schadcode-Pr\u00fcfung des Uploads-Verzeichnisses<\/strong><\/li>\n<li><strong>Informationsschutz (10 Punkte):<\/strong> Generator-Tag, RSD-Link, WLW-Manifest, XML-RPC, REST-API-Benutzer, Pingbacks, X-Powered-By<\/li>\n<li><strong>Security-Header (5 Punkte):<\/strong> X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, HSTS<\/li>\n<li><strong>Pingbacks (2 Punkte):<\/strong> ausgehende und eingehende Pingbacks<\/li>\n<li><strong>Auto-Updates (7 Punkte):<\/strong> n\u00e4chtlicher Schutz, Minor-\/Major-Auto-Updates, Plugin-\/Theme-Auto-Updates, verwaiste Erweiterungen<\/li>\n<li><strong>Monitoring und Betrieb (8 Punkte):<\/strong> Transients, Revisions-Cleanup, Captcha, WordPress-Version, PHP-Version, \/uploads\/-PHP-Sperre, Sicherheits-Plugin-Status, Schutz vor Verlinkung auf bekannte Schadseiten<\/li>\n<\/ul>\n\n<h4>Was Bastora h\u00e4rtet (wenn kein Konflikt erkannt wird)<\/h4>\n\n<ul>\n<li>WordPress-Version aus HTML und RSS-Feed entfernt<\/li>\n<li>RSD-Link und WLW-Manifest entfernt<\/li>\n<li>Login-Shake-Effekt deaktiviert<\/li>\n<li>Login-Fehlermeldung verallgemeinert (verr\u00e4t nicht mehr, welche Benutzer existieren)<\/li>\n<li>Author-Seiten umgeleitet (verhindert das Aufz\u00e4hlen von Benutzernamen)<\/li>\n<li>XML-RPC abgeschaltet (au\u00dfer ein konkurrierendes Plugin \u00fcbernimmt das schon)<\/li>\n<li>Pingback-XML-RPC-Methoden gesperrt<\/li>\n<li>REST-API-Endpoint \/users f\u00fcr nicht eingeloggte Anfragen gesperrt<\/li>\n<li>Application Passwords deaktiviert<\/li>\n<li>X-Powered-By-Header entfernt (verr\u00e4t sonst die PHP-Version)<\/li>\n<li>Beitrags-Revisionen auf 15 begrenzt (h\u00e4lt die Datenbank schlank, respektiert strengere Einstellungen)<\/li>\n<li>Uploads-Verzeichnis gegen PHP-Ausf\u00fchrung abgesichert (index.html gegen Verzeichnis-Listing, auf Apache zus\u00e4tzlich eine .htaccess, tritt zur Seite wenn ein anderes Plugin das schon macht)<\/li>\n<li><strong>HTTPS-Umstellung mit einem Klick:<\/strong> Bastora schreibt die eigenen http-Links Deiner Seite serialisierungssicher auf https um und richtet die Weiterleitung von http auf https ein. Auf reinen http-Seiten pr\u00fcft Bastora vorab die HTTPS-Erreichbarkeit, schaltet mit einem 15-min\u00fctigen Probelauf um und dreht ohne Best\u00e4tigung von selbst zur\u00fcck. Fremde Domains bleiben unber\u00fchrt, ein laufendes SSL-Plugin hat Vorrang.<\/li>\n<li><strong>Login-Honeypot:<\/strong> verstecktes Formularfeld in der Login-Maske, das Bots ausf\u00fcllen und sich damit als Bot zu erkennen geben<\/li>\n<li><strong>Brute-Force-Schutz mit IP-Sperre:<\/strong> 5 Fehlversuche \u2192 30 Minuten Sperre. Bei wiederholten Sperren: Eskalation auf 4 Stunden, dann 24 Stunden. Z\u00e4hler setzt sich nach erfolgreichem Login zur\u00fcck. IPv6 wird auf dem \/64-Pr\u00e4fix gesperrt. Cloudflare- und Reverse-Proxy-IP-Erkennung ist eingebaut.<\/li>\n<li><strong>Kerndatei-Auto-Reparatur:<\/strong> Bastora vergleicht t\u00e4glich Deine WordPress-Kerndateien mit den offiziellen Hashes von wordpress.org. Wird eine Datei manipuliert oder fehlt, l\u00e4dt 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 <code>wp-content\/uploads\/bastora-quarantine\/<\/code>. Du bekommst eine E-Mail mit der Liste der reparierten Dateien. Voraussetzung: Versions-Abgleich-Opt-in aktiv. Bei Hostern mit schreibgesch\u00fctzten Core-Dateien bleibt die Anzeige + Mail erhalten.<\/li>\n<li><strong>Bastora-Schwarm (opt-in):<\/strong> 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 \u00fcberhaupt anklopfen. Im Gegenzug meldet Deine Seite Angreifer, die Du erkennst. Versendet wird ausschlie\u00dflich 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.<\/li>\n<\/ul>\n\n<h4>Konflikt-erkennend<\/h4>\n\n<p>Wenn eines der folgenden Plugins schon l\u00e4uft, erkennt Bastora das und deaktiviert nur die \u00fcberlappenden Bereiche:<\/p>\n\n<ul>\n<li>Wordfence Security<\/li>\n<li>Sucuri Security<\/li>\n<li>Solid Security (fr\u00fcher iThemes)<\/li>\n<li>All-In-One WP Security &amp; Firewall<\/li>\n<li>MalCare Security<\/li>\n<li>WP Cerber Security<\/li>\n<li>Limit Login Attempts Reloaded<\/li>\n<li>Disable XML-RPC<\/li>\n<li>Disable Application Passwords<\/li>\n<li>Really Simple SSL<\/li>\n<li>HTTP Headers<\/li>\n<\/ul>\n\n<p>Im Dashboard siehst Du pro H\u00e4rtung im Klartext, warum sie aktiv oder inaktiv ist.<\/p>\n\n<h4>Was Bastora bewusst **nicht** macht<\/h4>\n\n<ul>\n<li><strong>Kein erzwungenes TOTP.<\/strong> Solopreneure sperren sich regelm\u00e4\u00dfig mit Authenticator-Apps aus. Bastora setzt stattdessen auf Brute-Force-Schutz, Rate-Limit und Anomalie-Erkennung.<\/li>\n<li><strong>Kein Verstecken der Login-URL.<\/strong> 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\u00f6sung.<\/li>\n<li><strong>Keine Cloud-Verbindung ohne Zustimmung.<\/strong> 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\u00fccklich freigibst.<\/li>\n<\/ul>\n\n<h4>Optionale anonyme Statistik (Opt-in)<\/h4>\n\n<p>Wenn Du das H\u00e4kchen \u201eStatistik aktivieren und teilen\" in den Einstellungen setzt, schickt Bastora einmal sofort und danach nur alle 28 Tage eine kompakte anonyme Zusammenfassung per HTTPS-POST an <code>https:\/\/bastora.de\/v1\/telemetry\/<\/code>. Vor dem H\u00e4kchen geht kein einziger Request raus. Die niedrige Frequenz ist bewusst: Bastora will Masse-Infos \u00fcber viele Sites sammeln, kein dichtes Zeitprofil einzelner Sites.<\/p>\n\n<p>\u00dcbertragen werden ausschlie\u00dflich:<\/p>\n\n<ul>\n<li>Eine zuf\u00e4llige anonyme Site-ID (UUID), lokal beim ersten Plugin-Start erzeugt<\/li>\n<li>Plugin-Version, WordPress-, PHP- und MySQL-Versions-Strings<\/li>\n<li>Locale (zum Beispiel de_DE)<\/li>\n<li>Multisite-Flag (ja\/nein)<\/li>\n<li>Liste der installierten Plugins und Themes mit Versionsstand (max. 200 Eintr\u00e4ge)<\/li>\n<li>Audit-Score und Counter pro Status (bestanden \/ Hinweis \/ offen \/ nicht pr\u00fcfbar)<\/li>\n<\/ul>\n\n<p>Was <strong>nie<\/strong> \u00fcbertragen wird: Domain, URL, IP-Adresse, E-Mail-Adressen, Benutzernamen, Beitragsinhalte, Dateiinhalte. Der bastora.de-Server loggt keine Aufrufer-IP. Pro Site-ID wird maximal ein Eintrag pro Tag akzeptiert (UPSERT), die normale Sende-Frequenz pro Site liegt ohnehin bei einem Datensatz alle 28 Tage. Bei Deinstallation des Plugins werden die lokale Site-ID und alle Bastora-Optionen entfernt.<\/p>\n\n<h3>Privacy<\/h3>\n\n<h4>Externe Verbindungen<\/h4>\n\n<p>Bastora kontaktiert externe Server in zwei klar getrennten F\u00e4llen. <strong>Beide sind opt-in. Ab Werk macht das Plugin keine externen Verbindungen.<\/strong><\/p>\n\n<p><strong>1. Versions-Abgleich gegen api.wordpress.org (opt-in)<\/strong><\/p>\n\n<p>Wenn Du im Welcome-Wizard oder in den Einstellungen \u201eVersions-Abgleich erlauben\" aktivierst, fragt Bastora bei einem manuellen Scan die api.wordpress.org nach:<\/p>\n\n<ul>\n<li>der aktuellen WordPress-Core-Version: <code>https:\/\/api.wordpress.org\/core\/version-check\/1.7\/<\/code><\/li>\n<li>den offiziellen Datei-Hashes der installierten WordPress-Version (f\u00fcr den Kerndatei-Abgleich): <code>https:\/\/api.wordpress.org\/core\/checksums\/1.0\/?version=&lt;version&gt;&amp;locale=en_US<\/code><\/li>\n<li>pro erkennbarem Plugin nach dessen letztem Update-Datum: <code>https:\/\/api.wordpress.org\/plugins\/info\/1.0\/&lt;slug&gt;.json<\/code><\/li>\n<li>pro erkennbarem Theme nach dessen letztem Update-Datum: <code>https:\/\/api.wordpress.org\/themes\/info\/1.2\/?action=theme_information&amp;request[slug]=&lt;slug&gt;<\/code><\/li>\n<\/ul>\n\n<p>Wenn Bastora bei der t\u00e4glichen Pr\u00fcfung manipulierte oder fehlende Kerndateien entdeckt, l\u00e4dt Bastora zus\u00e4tzlich die offizielle WordPress-ZIP herunter, um die saubere Originaldatei zu extrahieren:<\/p>\n\n<ul>\n<li><code>https:\/\/downloads.wordpress.org\/release\/wordpress-&lt;version&gt;.zip<\/code><\/li>\n<\/ul>\n\n<p>Die ZIP wird einmal pro Version 7 Tage lokal in <code>wp-content\/uploads\/bastora-quarantine\/_core-cache\/<\/code> gespeichert, um wiederholten Bandbreitenverbrauch zu vermeiden. Vor dem Ersetzen einer Datei pr\u00fcft Bastora deren MD5-Hash gegen den von api.wordpress.org gemeldeten Wert (Doppel-Sicherung gegen Download-Pannen).<\/p>\n\n<p>Ab Plugin-Version 0.4.0 l\u00e4dt Bastora f\u00fcr die t\u00e4gliche Plugin- und Theme-Wache zus\u00e4tzlich pro installiertem Plugin\/Theme die offizielle ZIP aus dem WordPress.org-Repository, um die einzelnen Dateien gegen das Original abzugleichen:<\/p>\n\n<ul>\n<li><code>https:\/\/downloads.wordpress.org\/plugin\/&lt;slug&gt;.&lt;version&gt;.zip<\/code><\/li>\n<li><code>https:\/\/downloads.wordpress.org\/theme\/&lt;slug&gt;.&lt;version&gt;.zip<\/code><\/li>\n<\/ul>\n\n<p>Die ZIPs werden 7 Tage lokal in <code>wp-content\/uploads\/bastora-quarantine\/_asset-cache\/<\/code> gespeichert. Plugins und Themes, die NICHT im offiziellen WordPress.org-Repository liegen (z.B. Premium-Plugins, Custom-Themes), werden als \u201eextern, nicht pr\u00fcfbar\" markiert, es geht kein Request raus au\u00dfer dem ersten API-Lookup, der mit 404 antwortet und das Ergebnis 24 Stunden zwischenspeichert. Bei Plugins findet eine automatische Reparatur bewusst NICHT statt; bei Funden bekommst Du eine Admin-Mail mit der Liste der abweichenden Dateien. Bei Themes aus dem WordPress.org-Repository schreibt Bastora ab Version 1.3.0 eine vom Original abweichende Datei selbst zur\u00fcck und sichert die vorgefundene Fassung in der Quarant\u00e4ne. Themes ohne Original bei wordpress.org bleiben vom Abgleich unangetastet; nur eindeutiger Schadcode (Webshell, Backdoor, Spuren-Verwischer) wird auch dort in die Quarant\u00e4ne verschoben.<\/p>\n\n<p>Das ist dieselbe API, die WordPress selbst f\u00fcr seine eigenen Update-Checks nutzt. \u00dcbertragen 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.<\/p>\n\n<p>Wenn Du diesen Punkt nicht aktivierst, werden die update-relevanten Audit-Punkte als \u201enicht pr\u00fcfbar\" markiert und es geht keine Anfrage raus.<\/p>\n\n<p><strong>2. Bastora-Schwarm (opt-in, ab Plugin-Version 0.3.0)<\/strong><\/p>\n\n<p>Wenn Du den Bastora-Schwarm im Welcome-Wizard oder unter \u201eEinstellungen \u2192 Bastora-Schwarm\" aktivierst, tauscht das Plugin Brute-Force-Angreifer-IPs anonym mit anderen teilnehmenden Sites aus. Drei Endpoints sind beteiligt:<\/p>\n\n<ul>\n<li><code>https:\/\/bastora.de\/api\/swarm-register.php<\/code>, Einmaliger POST beim Aktivieren. Der Server vergibt einen anonymen UUID-Token. \u00dcbertragen wird: die Plugin-Version. Nicht \u00fcbertragen wird: Domain, URL, IP-Adresse Deiner Besucher, Owner-Daten. Die Server-IP des HTTP-Requests wird nur als gesalzener SHA-256-Hash f\u00fcr ein Rate-Limit gespeichert und ist nicht zur\u00fcckrechenbar.<\/li>\n<li><code>https:\/\/bastora.de\/api\/swarm-report.php<\/code>, POST bei Erkennung eines Brute-Force-Angriffs. \u00dcbertragen wird: der anonyme Token, die Angreifer-IP, der Angriffs-Typ (\u201elogin_bruteforce\"), die Severity, die Plugin-Version. Nicht \u00fcbertragen wird: alles andere.<\/li>\n<li><code>https:\/\/bastora.de\/api\/swarm-feed.php<\/code>, 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.<\/li>\n<li><code>https:\/\/bastora.de\/api\/swarm-disconnect.php<\/code>, POST beim Opt-out in den Einstellungen oder beim Deinstallieren. \u00dcbertragen wird: der anonyme Token. Der Server l\u00f6scht den Knoten unmittelbar.<\/li>\n<\/ul>\n\n<p>Der HTTP-User-Agent ist bei allen vier Endpoints statisch \u201eBastora-Swarm\/\", damit WordPress die Domain nicht \u00fcber 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\u00f6scht (Datenminimierung). Sperrlisten-Eintr\u00e4ge verfallen nach 72 Stunden ohne neue Meldungen.<\/p>\n\n<p><strong>Pwned-Passwords-Abgleich (Opt-in, nur Backend-Login)<\/strong><\/p>\n\n<p>Wenn Du in den Einstellungen den Passwort-Leak-Check aktivierst, schickt Bastora bei jedem Backend-Login (max. 1\u00d7 pro 7 Tage pro Nutzer) die ersten f\u00fcnf Hex-Zeichen des SHA-1-Hashes Deines eingegebenen Passworts an <code>https:\/\/bastora.de\/v1\/pwned\/&lt;prefix&gt;<\/code>. \u00dcbertragen wird ausschlie\u00dflich dieses 5-Zeichen-Prefix. Nicht \u00fcbertragen wird: das Passwort selbst, das vollst\u00e4ndige Hash, der Nutzername, die Domain, irgendeine ID. Der bastora.de-Proxy fragt die offizielle haveibeenpwned.com-API mit dem Prefix an, cached das Ergebnis 7 Tage lokal in einer deutschen MySQL-Datenbank und schickt die Liste der Hash-Suffixe zur\u00fcck. Der Abgleich passiert lokal in WordPress. Das Verfahren hei\u00dft k-Anonymity und wird auch von 1Password, Firefox und Chrome genutzt. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO. Bei Treffer wird der Nutzer im Backend per Notice aufgefordert, das Passwort zu \u00e4ndern, der Login wird nie blockiert.<\/p>\n\n<p><strong>Schad-URL-Feed (Opt-in)<\/strong><\/p>\n\n<p>Wenn Du den Schad-URL-Feed in den Einstellungen aktivierst, holt Bastora einmal pro Tag eine aktualisierte Domain-Liste von <code>https:\/\/bastora.de\/v1\/url-feed\/<\/code>. \u00dcbertragen wird ausschlie\u00dflich ein anonymer GET-Request, optional mit dem Zeitstempel des letzten erfolgreichen Abrufs als <code>?since=&lt;unixts&gt;<\/code>, damit nur neu hinzugekommene Eintr\u00e4ge geliefert werden. Es geht keine Domain Deiner Seite, keine Besucher-Daten und kein Identifier raus. Die Antwort ist eine reine JSON-Liste mit Schad-Domain, Typ (\u201emalware\" oder \u201ephishing\") und Severity, sie enth\u00e4lt keinen ausf\u00fchrbaren Code. Quellen, die der Bastora-Server aggregiert: URLhaus (abuse.ch, CC0 1.0) und der OpenPhish-Community-Feed. Die Liste wird lokal in einer WP-Option gespeichert (Hard-Cap 50 000 Eintr\u00e4ge, 30 Tage Plugin-seitige TTL) und vom URL-Watch-Modul zus\u00e4tzlich zur eingebauten Startliste f\u00fcr die Pr\u00fcfung von Beitr\u00e4gen und Kommentaren genutzt. Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO. Vor dem Opt-in-H\u00e4kchen wird kein einziger Aufruf an <code>bastora.de\/v1\/url-feed\/<\/code> ausgef\u00fchrt.<\/p>\n\n<p><strong>Anonyme Sicherheits-Telemetrie an bastora.de (Opt-in)<\/strong><\/p>\n\n<p>Wenn Du in den Einstellungen den Schalter \u201eStatistik aktivieren und teilen\" setzt, schickt Bastora einmal sofort und danach nur alle 28 Tage einen JSON-POST an <code>https:\/\/www.bastora.de\/v1\/telemetry\/<\/code>. Vor dem H\u00e4kchen wird <strong>kein<\/strong> Aufruf ausgef\u00fchrt. Ab Plugin-Version 1.0.3 ist das Datenpaket bewusst umfangreicher, damit Bastora das gemeinsame Bedrohungsbild f\u00fcr die WordPress-Welt sch\u00e4rfen kann. Die niedrige Frequenz ist bewusst: Bastora will Masse-Infos \u00fcber viele Sites sammeln, kein dichtes Zeitprofil einzelner Sites. \u00dcbertragen wird:<\/p>\n\n<ul>\n<li>Eine zuf\u00e4llige anonyme Site-ID (UUID), lokal beim ersten Plugin-Start erzeugt<\/li>\n<li>Bastora-Plugin-Version<\/li>\n<li>WordPress-Version + die zum Zeitpunkt der Erfassung aktuelle Core-Version + Update-Status (ja\/nein)<\/li>\n<li>PHP- und MySQL-Versions-Strings<\/li>\n<li>Server-Software-String (z.B. \u201eApache\/2.4\")<\/li>\n<li>Anonymer Hosting-Provider-Slug (z.B. \u201ehetzner\", \u201eionos\", \u201ekinsta\"), ermittelt aus Konstanten-Markern bekannter Managed-Hoster, Reverse-DNS auf die Server-IP, sowie DOCUMENT_ROOT-Pfad-Pattern. Die Server-IP selbst wird NICHT gesendet.<\/li>\n<li>Locale (zum Beispiel de_DE), Zeitzone, Multisite-Flag<\/li>\n<li>Pro installiertem Plugin: Slug, installierte Version, neueste verf\u00fcgbare Version (Quelle: api.wordpress.org-Cache), ob Update bereitsteht, ob Auto-Update aktiv ist, ob Plugin aktiv oder inaktiv. Max. 200 Plugins.<\/li>\n<li>Pro installiertem Theme: Slug, installierte Version, neueste verf\u00fcgbare Version, Update-Status, Auto-Update, Eltern-Theme bei Child-Themes. Max. 75 Themes.<\/li>\n<li>Aktives Theme: Slug, Version, Eltern-Theme<\/li>\n<li>User-Counts pro Rolle (nur Zahlen, keine Namen oder Mails)<\/li>\n<li>Content-Counts: Anzahl ver\u00f6ffentlichter Beitr\u00e4ge, Seiten, Kommentare (total \/ approved \/ spam)<\/li>\n<li>WordPress-Konfigurations-Flags: WP_DEBUG, DISALLOW_FILE_EDIT, DISALLOW_FILE_MODS, FORCE_SSL_ADMIN, gesch\u00e4tzte autoload-Options-Gr\u00f6\u00dfe in KB<\/li>\n<li>Audit-Summary (Counter pro Status) + Audit-Findings-Map: pro Audit-Punkt-ID ein kompakter Status-Code (0=bestanden, 1=Hinweis, 2=offen, 3=nicht pr\u00fcfbar). Damit wertet die Server-Statistik die h\u00e4ufigsten Sicherheitsl\u00fccken aus.<\/li>\n<li>Erkannte Sicherheits-Plugins mit Klassifizierung free \/ Pro \/ lizenz-aktiviert (z.B. Wordfence Free vs. Wordfence Premium per API-Key-Konstante)<\/li>\n<li>Bastora-eigene H\u00e4rtungs-Schalter mit Aktiv-Status und erkannten Konflikten (welche Bereiche andere Sicherheits-Plugins schon \u00fcbernehmen)<\/li>\n<\/ul>\n\n<p>Was <strong>nie<\/strong> \u00fcbertragen wird: Domain, URL, Server-IP, Besucher-IPs, E-Mail-Adressen, Benutzernamen, Beitragsinhalte, Datei-Inhalte, Datenbank-Inhalte. Der bastora.de-Server loggt keine Aufrufer-IP. Pro Site-ID akzeptiert der Server maximal einen Eintrag pro Tag (UPSERT, der jeweils neueste Stand bleibt). Rechtsgrundlage: Art. 6 Abs. 1 lit. f DSGVO. Bei Deinstallation des Plugins wird die lokale Site-ID gel\u00f6scht.<\/p>\n\n<p><strong>Wichtige Einordnung zur Quasi-Eindeutigkeit:<\/strong> Die Kombination aus Plugin-Inventar, Theme-Inventar, jeweiligen Versionen, Hosting-Provider-Slug und Locale ist statistisch sehr individuell. Auch ohne Domain entsteht damit ein \u201eFingerprint\" der Installation. Bastora nutzt die Daten ausschlie\u00dflich f\u00fcr die anonyme Statistik (h\u00e4ufigste Plugins, h\u00e4ufigste L\u00fccken, Update-R\u00fcckst\u00e4nde) und f\u00fchrt die Telemetrie-Datenbank nie mit anderen Datenquellen zusammen. Wenn diese Einordnung f\u00fcr Dich nicht akzeptabel ist, lass das Telemetrie-H\u00e4kchen leer , das Plugin funktioniert auch ohne.<\/p>\n\n<p><strong>Lokale DNS-Anfrage zur Hosting-Provider-Erkennung (nur als Teil der Telemetrie-Funktion)<\/strong><\/p>\n\n<p>Wenn die Telemetrie aktiv ist, ermittelt Bastora einmalig den anonymen Hosting-Provider-Slug (z.B. \u201ehetzner\", \u201eionos\", \u201ekinsta\"). Daf\u00fcr ruft Bastora die lokale PHP-Funktion <code>gethostbyaddr()<\/code> mit der eigenen Server-IP auf, was eine PTR-Anfrage am Resolver des Hosters ausl\u00f6st. Es geht KEIN Aufruf an einen Bastora-eigenen Server, keine externe API und keine Domain raus, nur die normale lokale Namensaufl\u00f6sung am Hoster-DNS. Das Ergebnis wird 30 Tage in einer WP-Option zwischengespeichert, damit das nur einmal alle 30 Tage passiert. Vor dem Telemetrie-Opt-in l\u00e4uft auch diese Funktion nicht.<\/p>\n\n<h4>Datenschutzhinweis<\/h4>\n\n<p>Vollst\u00e4ndige Datenschutzerkl\u00e4rung: https:\/\/bastora.de\/datenschutz.php\nVerantwortliche Stelle laut Impressum: https:\/\/bastora.de\/impressum.php<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Installiere das Plugin aus dem WordPress-Plugin-Verzeichnis oder lade den ZIP-Ordner nach <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Aktiviere das Plugin im Men\u00fc \u201ePlugins\".<\/li>\n<li>\u00d6ffne das neue Men\u00fc \u201eBastora\" und klicke einmal auf \u201eSicherheitspr\u00fcfung starten\".<\/li>\n<\/ol>\n\n<p>Mehr ist nicht zu tun. Bastora richtet sich selbst ein.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"brauche%20ich%20technisches%20wissen%2C%20um%20bastora%20zu%20nutzen%3F\"><h3>Brauche ich technisches Wissen, um Bastora zu nutzen?<\/h3><\/dt>\n<dd><p>Nein. Bastora braucht keine Konfiguration. Installieren, aktivieren, scannen, fertig.<\/p><\/dd>\n<dt id=\"funktioniert%20bastora%20neben%20wordfence%2Fsucuri%2Fsolid%20security%3F\"><h3>Funktioniert Bastora neben Wordfence\/Sucuri\/Solid Security?<\/h3><\/dt>\n<dd><p>Ja. Bastora erkennt diese Plugins beim Aktivieren und tritt in den \u00fcberlappenden Bereichen zur Seite. Das Dashboard zeigt Dir, welche H\u00e4rtungen wegen eines Konflikts inaktiv sind.<\/p><\/dd>\n<dt id=\"%C3%9Cbertr%C3%A4gt%20das%20plugin%20daten%20von%20meiner%20seite%3F\"><h3>\u00dcbertr\u00e4gt das Plugin Daten von meiner Seite?<\/h3><\/dt>\n<dd><p>Ab Werk nichts. Externe Verbindungen schaltest Du in den Einstellungen einzeln frei: Versions-Abgleich gegen api.wordpress.org, Bastora-Schwarm, Schad-URL-Feed, Passwort-Leak-Check, anonyme Statistik. Jede dieser Verbindungen ist standardm\u00e4\u00dfig aus und sendet erst nach Deinem H\u00e4kchen Daten.<\/p><\/dd>\n<dt id=\"wie%20nehme%20ich%20die%20anonyme%20statistik%20wieder%20zur%C3%BCck%3F\"><h3>Wie nehme ich die anonyme Statistik wieder zur\u00fcck?<\/h3><\/dt>\n<dd><p>Bastora \u2192 Einstellungen \u2192 H\u00e4kchen bei \u201eStatistik aktivieren und teilen\" raus \u2192 speichern. Der t\u00e4gliche Cron wird sofort gestoppt, ab da geht kein Eintrag mehr an bastora.de. Die bereits gesammelten Datens\u00e4tze werden serverseitig nicht von uns r\u00fcckwirkend gel\u00f6scht, weil sie keinen Bezug zu Deiner Domain haben (nur eine zuf\u00e4llige UUID).<\/p><\/dd>\n<dt id=\"wo%20werden%20die%20daten%20gespeichert%3F\"><h3>Wo werden die Daten gespeichert?<\/h3><\/dt>\n<dd><p>Auf deutschen Servern. Bastora arbeitet ausschlie\u00dflich mit einem deutschen Hoster.<\/p><\/dd>\n<dt id=\"was%20passiert%2C%20wenn%20ich%20bastora%20deinstalliere%3F\"><h3>Was passiert, wenn ich Bastora deinstalliere?<\/h3><\/dt>\n<dd><p>Bei normaler Deaktivierung bleiben die Bastora-Einstellungen erhalten. Wenn Du das Plugin per \u201eL\u00f6schen\" entfernst, werden alle Einstellungen, Audit-Ergebnisse und Site-IDs gel\u00f6scht. H\u00e4rtungen werden automatisch zur\u00fcckgerollt. Bei aktivem Schwarm-Schutz meldet das Plugin den anonymen Token vorher beim Schwarm-Server ab.<\/p><\/dd>\n<dt id=\"wie%20funktioniert%20der%20bastora-schwarm%3F\"><h3>Wie funktioniert der Bastora-Schwarm?<\/h3><\/dt>\n<dd><p>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\u00e4ngige Sites dieselbe IP melden oder eine einzelne Site dieselbe IP h\u00e4ufig 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 \u00fcbernommen, damit sie nicht versehentlich gesperrt werden.<\/p><\/dd>\n<dt id=\"welche%20daten%20verlassen%20meine%20seite%2C%20wenn%20der%20schwarm%20aktiv%20ist%3F\"><h3>Welche Daten verlassen meine Seite, wenn der Schwarm aktiv ist?<\/h3><\/dt>\n<dd><p>Ausschlie\u00dflich: die Angreifer-IP, der Angriffs-Typ (\u201elogin_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 (\u201eBastora-Swarm\/Version\"), damit WordPress die Domain nicht \u00fcber den Standard-UA mitschickt. Rechtsgrundlage ist Art. 6 Abs. 1 lit. f DSGVO (berechtigtes Interesse an Angriffsabwehr).<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.3.8<\/h4>\n\n<ul>\n<li><strong>Deutsche WordPress-Installationen werden korrekt gepr\u00fcft.<\/strong> Bastora hat die Kerndateien bisher gegen die englische Ausgabe von WordPress abgeglichen. Auf einer deutschen Installation galt dadurch <code>wp-includes\/version.php<\/code> als ver\u00e4ndert, obwohl sie in Ordnung war. Bastora pr\u00fcft jetzt gegen das Sprachpaket, aus dem WordPress tats\u00e4chlich installiert wurde, und l\u00e4dt f\u00fcr eine Reparatur auch die passende Ausgabe.<\/li>\n<li><strong>Keine unn\u00f6tige Reparatur mehr an dieser Datei.<\/strong> Aus demselben Grund hat die Kerndatei-Wache diese eine Datei bei jedem Durchlauf ersetzt und dabei die Sprachkennung von WordPress \u00fcberschrieben. Das passiert nicht mehr.<\/li>\n<li><strong>Auch der Kern r\u00e4t nicht mehr zur Neuinstallation.<\/strong> Weicht eine Kerndatei ab, holt Bastora das Original zur\u00fcck und sichert die vorgefundene Fassung in der Quarant\u00e4ne, wie bei Plugins und Themes auch.<\/li>\n<li><strong>Der Login-Schutz l\u00e4sst sich nicht mehr \u00fcber gef\u00e4lschte Kopfzeilen austricksen.<\/strong> Die Brute-Force-Sperre bestimmt die Besucher-Adresse jetzt genauso vorsichtig wie der \u00fcbrige Schutz und wertet Proxy-Kopfzeilen nur bei einem bekannten Proxy aus.<\/li>\n<li><strong>Gesicherte Fundst\u00fccke sind nicht mehr aufrufbar.<\/strong> Dateien, die Bastora in die Quarant\u00e4ne verschiebt, werden mit unsch\u00e4dlicher Endung abgelegt und der Ordner zus\u00e4tzlich gegen direkten Zugriff gesperrt.<\/li>\n<li><strong>Keine internen Adressen im Schwarm.<\/strong> Private und reservierte IP-Adressen werden weder gemeldet noch gesperrt.<\/li>\n<li><strong>Ein ver\u00e4ndertes Theme wird nicht mehr als sauber ausgewiesen.<\/strong> Weicht das aktive Theme vom Original ab, zeigt der zugeh\u00f6rige Punkt das als Hinweis, statt \u201ealles in Ordnung\" zu melden.<\/li>\n<\/ul>\n\n<h4>1.3.7<\/h4>\n\n<ul>\n<li><strong>Status erneuert sich nach einem Update von selbst.<\/strong> Nach einem Plugin-, Theme- oder WordPress-Update erhebt Bastora den Sicherheitsstatus jetzt im Hintergrund neu, ohne dass Du das Dashboard \u00f6ffnen musst. Der Schutz war auch vorher durchgehend aktiv, die Anzeige h\u00e4ngt nun nicht mehr hinterher.<\/li>\n<li><strong>Verf\u00fcgbare Updates fallen auf einen Hinweis zur\u00fcck.<\/strong> Steht f\u00fcr ein Plugin oder Theme ein Update bereit (auch bei abgeschaltetem Auto-Update), zeigt der passende Pr\u00fcfpunkt das als Hinweis, statt weiter \u201ealles aktuell\" zu melden.<\/li>\n<li><strong>\u201eDateien reparieren\" statt Neuinstallation.<\/strong> Weicht ein Plugin oder Theme vom Original auf wordpress.org ab, r\u00e4t Bastora nicht mehr zur riskanten Neuinstallation. Ein Klick ersetzt gezielt nur die abweichenden Dateien durch das Original; die vorgefundene Fassung wird vorher in der Quarant\u00e4ne gesichert. Einstellungen und Inhalte bleiben unangetastet.<\/li>\n<\/ul>\n\n<h4>1.3.6<\/h4>\n\n<ul>\n<li><strong>Login-Captcha wird im Einrichtungs-Assistenten mitaktiviert.<\/strong> Im Schritt \u201eAbsichern\" schaltet Bastora das Captcha jetzt sichtbar zusammen mit den \u00fcbrigen Schutzschichten scharf. Der zugeh\u00f6rige Punkt steht danach von selbst auf gr\u00fcn, statt nur einen Hinweis ohne Weg zu zeigen.<\/li>\n<li><strong>Kein Doppel-Scan neben anderen Security-Plugins.<\/strong> Erkennt Bastora ein Plugin, das den Schadcode-Scan oder die Datei-Integrit\u00e4t bereits \u00fcbernimmt (etwa Wordfence, Sucuri, MalCare, Solid Security oder WP Cerber), h\u00e4lt es den eigenen Scanner und die Datei-Wachen zur\u00fcck. Das spart Last und vermeidet widerspr\u00fcchliche Meldungen; der betroffene Punkt nennt klar, welches Plugin die Aufgabe \u00fcbernimmt.<\/li>\n<\/ul>\n\n<h4>1.3.5<\/h4>\n\n<ul>\n<li><strong>Ehrlichere Score-Gewichtung.<\/strong> Nicht mehr jeder Pr\u00fcfpunkt z\u00e4hlt gleich viel: kritische Schutzpunkte wiegen jetzt schwerer als kleine Kosmetik-Punkte. Der Score spiegelt damit den tats\u00e4chlichen Sicherheitsgewinn ehrlicher wider.<\/li>\n<li><strong>Kein doppelter Hinweis mehr.<\/strong> Wo ein Knopf den Punkt direkt behebt, blendet Bastora den zus\u00e4tzlichen \u201eL\u00f6sung in der Werkstatt\"-Link aus. Ein klarer Weg statt zwei.<\/li>\n<li><strong>Stabilit\u00e4t und Tempo.<\/strong> Umfassender Code-Durchgang mit Fehlerkorrekturen und Performance-Feinschliff, damit Bastora die Website praktisch nicht ausbremst.<\/li>\n<\/ul>\n\n<h4>1.3.4<\/h4>\n\n<ul>\n<li><strong>Restlicher Mixed Content verschwindet.<\/strong> Nach der aktiven HTTPS-Umstellung weist Bastora den Browser an, jeden verbliebenen http-Verweis automatisch \u00fcber https zu laden (upgrade-insecure-requests). Das r\u00e4umt auch Links auf, die fest im Theme stehen und ein Datenbank-Ersetzen nie erreicht. Der HTTPS-Punkt steht danach auf gr\u00fcn.<\/li>\n<\/ul>\n\n<h4>1.3.3<\/h4>\n\n<ul>\n<li><strong>Scoring zieht nach jeder Umstellung nach.<\/strong> L\u00f6st Du die HTTPS-Umstellung \u00fcber den Knopf aus, erkennt das Dashboard die \u00c4nderung sofort, bewertet den Punkt neu und passt den Score an. Auch das R\u00fcckg\u00e4ngigmachen wirkt sich direkt aus.<\/li>\n<\/ul>\n\n<h4>1.3.2<\/h4>\n\n<ul>\n<li><strong>Frischer Status direkt nach dem Update.<\/strong> Nach einem Plugin-Update erhebt Bastora den Sicherheits-Status von selbst neu, statt ein altes Ergebnis mit alten Einstufungen anzuzeigen. Ein Hard-Refresh im Browser ist nicht mehr n\u00f6tig.<\/li>\n<li><strong>Betreuter Schutz tr\u00e4gt wieder das blaue \"Pro\"-Abzeichen.<\/strong> Die Ebene zeigt ihr Abzeichen jetzt zuverl\u00e4ssig, auch wenn das gespeicherte Ergebnis noch vom Vorg\u00e4nger stammt. Die Kachel \"Nicht pr\u00fcfbar\" und ihr Filter z\u00e4hlen dieselben Punkte.<\/li>\n<li><strong>Sicherheits-Header setzt Bastora jetzt selbst.<\/strong> X-Frame-Options, X-Content-Type-Options, Referrer-Policy und Permissions-Policy liefert Bastora auf sicheren Werten aus, sofern sie nicht schon vom Server oder einem anderen Plugin kommen. Doppelte Header entstehen dabei nicht.<\/li>\n<li><strong>Autosave und Pingbacks werden automatisch gel\u00f6st.<\/strong> Statt eines Knopfes streckt Bastora das Autosave-Intervall auf 5 Minuten und schaltet aus- und eingehende Pingbacks ab, jeweils konfliktgepr\u00fcft.<\/li>\n<li><strong>Fremdverwaltete Updates: kein leerer Schalter mehr.<\/strong> Verwaltet eine Hosting-Schicht wie Installatron die automatischen Updates, zeigt Bastora nur noch den Hinweis, keine wirkungslose Checkbox.<\/li>\n<li><strong>Assets brechen den Cache zuverl\u00e4ssig.<\/strong> Alle mitgelieferten Skripte und Stile laden nach einer \u00c4nderung sicher neu.<\/li>\n<li><strong>Child-Themes werden erkannt.<\/strong> Nutzt Du ein Child-Theme (etwa Hello Elementor Child), gleicht Bastora das Eltern-Theme mit dem Original auf wordpress.org ab, statt das Child f\u00e4lschlich als \u201ePro-Theme ohne Referenz\" zu behandeln.<\/li>\n<li><strong>Captcha-Hinweis verst\u00e4ndlich.<\/strong> Der Punkt zum Login-Captcha spricht nicht mehr vom \u201eOnboarding\". Nach abgeschlossener Einrichtung sch\u00fctzt das Bastora-Captcha den Login automatisch und der Punkt steht auf gr\u00fcn.<\/li>\n<li><strong>Sichere Verbindung mit Knopf.<\/strong> Meldet der Punkt zur sicheren Verbindung noch offene Stellen, f\u00fchrt ein Knopf direkt zur Umstellung.<\/li>\n<li><strong>Klarere Update-Empfehlung im Assistenten.<\/strong> Der Einrichtungs-Assistent empfiehlt automatische Updates f\u00fcr Plugins, Themes und den WordPress-Kern in einem Zug. Das H\u00e4kchen greift jetzt zuverl\u00e4ssig, sodass die Update-Empfehlung nach der Einrichtung nicht mehr f\u00e4lschlich erneut erscheint.<\/li>\n<li><strong>HTTPS stellt Bastora nicht mehr von selbst um.<\/strong> Die Umstellung auf sichere Links bleibt eine Empfehlung, die Du im Dashboard oder in den Einstellungen selbst ausl\u00f6st und jederzeit wieder r\u00fcckg\u00e4ngig machen kannst. Die Pr\u00fcfung auf unsichere Links (Mixed Content) bleibt erhalten, ein vorhandenes SSL-Plugin bleibt unangetastet.<\/li>\n<li><strong>Reverse-Proxy sauber erkannt.<\/strong> Liefert Dein Hoster oder ein Proxy die Seite bereits \u00fcber https aus, w\u00e4hrend WordPress intern noch http kennt, zeigt Bastora daf\u00fcr einen ruhigen Hinweis mit klarer Erkl\u00e4rung statt einer falschen \u201eunverschl\u00fcsselt\"-Warnung.<\/li>\n<\/ul>\n\n<h4>1.3.0<\/h4>\n\n<ul>\n<li><strong>Ver\u00e4nderte Theme-Dateien werden ersetzt, statt gemeldet.<\/strong> Weicht eine Datei vom Original auf wordpress.org ab, schreibt Bastora das Original selbst zur\u00fcck und sichert die vorgefundene Fassung in der Quarant\u00e4ne. Danach steht dort eine Information, keine Aufgabe.<\/li>\n<li><strong>Die Herkunft entscheidet, nicht das Muster.<\/strong> Code, der bitgenau so im Original des Themes steht, geh\u00f6rt zum Theme und taucht nirgends mehr als Verdacht auf.<\/li>\n<li><strong>Ohne Original bleibt der Punkt ehrlich grau.<\/strong> Bei gekauften Themes, ausgelagerten Builder-Themes und Child-Themes gibt es nichts zu vergleichen. Das sagt Bastora jetzt so, statt Vermutungen anzuzeigen. Eindeutiger Schadcode wie eine Webshell wird dort trotzdem erkannt und behandelt, denn daf\u00fcr braucht es kein Original.<\/li>\n<li><strong>Eindeutiger Schadcode wandert von selbst in die Quarant\u00e4ne.<\/strong> Tr\u00e4gt eine fremde Datei ein eindeutiges Muster (Webshell, Backdoor, Verwisch-Routine), verschiebt Bastora sie in die Quarant\u00e4ne und legt eine Sicherungskopie ab. Muster, die auch harmlos sein k\u00f6nnen, entfernt Bastora nicht von allein: dort steht ein Knopf mit kurzer Empfehlung. Bindet das Theme die Datei ein, bleibt sie unangetastet.<\/li>\n<li><strong>Der Audit-Punkt bewertet sich nach jedem Eingriff neu.<\/strong> Bisher konnte er von Funden sprechen, die l\u00e4ngst behoben waren.<\/li>\n<li><strong>Bastora misst nach \u00c4nderungen selbst nach.<\/strong> Bemerkt es eine \u00c4nderung am System, meldet es das im Dashboard und erhebt den Status sofort neu. W\u00e4hrenddessen dreht sich der Ring um den Score. Die Aufforderung, selbst einen Scan zu starten, entf\u00e4llt.<\/li>\n<li><strong>F\u00fcnfte Kachel im Dashboard.<\/strong> \"Bastora Pro\" zeigt die Punkte, die der bezahlte Dienst \u00fcbernimmt, mit derselben Filterung wie die \u00fcbrigen Kacheln. Die Ebene \"Betreuter Schutz\" tr\u00e4gt dazu ein blaues Abzeichen.<\/li>\n<li><strong>Rot hei\u00dft jetzt \"Zu beheben\".<\/strong> Der bisherige Begriff \"Offen\" lie\u00df sich zu leicht mit \"Nicht pr\u00fcfbar\" verwechseln.<\/li>\n<li><strong>Passwort-Warnung l\u00e4sst sich ausblenden.<\/strong> Ein Knopf \"Ich kenne das Risiko\" legt die Meldung still. Sobald ein sauberes Passwort gesetzt ist, meldet Bastora bei einem k\u00fcnftig geleakten wieder.<\/li>\n<li><strong>Datei-Inspektor repariert.<\/strong> Der Vergleich mit dem Original l\u00e4dt die Referenz jetzt bei Bedarf, statt auf einen zwischenzeitlich geleerten Zwischenspeicher zu warten.<\/li>\n<li><strong>Men\u00fc aufger\u00e4umt.<\/strong> Dashboard, Status, Einstellungen und Pro. Die Detailseiten bleiben \u00fcber ihre Links erreichbar.<\/li>\n<\/ul>","raw_excerpt":"62-Punkte-Sicherheits-Check mit Firewall, Schadcode-Scanner, URL-Reputation, Captcha, Schwarm-Schutz und Auto-Reparatur der WordPress-Kerndateien.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/316373","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=316373"}],"author":[{"embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mathiasva"}],"wp:attachment":[{"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=316373"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=316373"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=316373"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=316373"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=316373"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/yor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=316373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}