Das Backend
Im Backend findet man die Administrationsebene bzw. das Dashboard des eingesetzten Blogs. Beiträge verfassen, SEO-Auswertungen, technische Anpassungen – all dies an einem Ort. Hier kann man einige Stellschrauben anlegen, um das beste Ergebnis für sich und seine Leser zu erzielen. Auch hier habe ich einige Zeit verbracht und über einige Monate hinweg Anpassungen vorgenommen, wie:
- Einer Erweiterung einen inoffiziellen Patch verpasst, die Dokumente nicht korrekt escapte und damit eine XSS-Lücke ermöglichte [ich habe hier berichtet].
- Mein Dashboard mit einem eigenen Design (via CSS) überschrieben, welches weniger steril wirkt.
- Durch Anpassung der .htaccess deutlich bessere Schutzwirkungen erzielen können.
- Durch Optimierung von Beiträgen, den Vital-Zeichen des Blogs, dem stetigen Vernetzen und Finden interessanter Beiträge in meiner Blogosphäre konnte ich einen gewaltigen Sprung meiner Leserschaft im Q2/2025 verzeichnen, der mich erstmal sprachlos zurückließ.
Mein erstes Goodie für dich
Findet in erster Linie seine Anwendung für Personen, die Joomla und somit die ab Werk ausgelieferte .htaccess-Datei verwenden. Auch in anderen Blog-Systemen wie WordPress könnte dies seine Verwendung finden, doch da ich die dortige Umgebung nicht kenne, bitte vorher prüfen, ob diese Abschnitte nicht schon enthalten sind.
1. Browser-Caching & bfcache-Optimierung (Höchster Performance-Effekt)
Problem: Standardmäßig gibt Joomla/Apache keine Anweisungen zum Cachen statischer Dateien mit. Besucher laden Styles, Bilder und Skripte bei jedem Seitenklick erneut herunter.
# Browser-Caching & bfcache-Steuerung
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 hour"
<FilesMatch "\.(?:css|js|mjs|woff2?|ttf|otf|eot|svg|gif|jpe?g|png|webp|avif|ico)$">
ExpiresDefault "access plus 1 year"
</FilesMatch>
</IfModule>
<IfModule mod_headers.c>
# Statische Dateien 1 Jahr im Browser-Cache speichern
<FilesMatch "\.(?:css|js|mjs|woff2?|ttf|otf|eot|svg|gif|jpe?g|png|webp|avif|ico)$">
Header always set Cache-Control "public, max-age=31536000, immutable"
</FilesMatch>
# HTML/PHP-Seiten: Aktuell halten, aber Back-Forward-Cache erlauben
<FilesMatch "\.(php|html?)$">
Header always unset Cache-Control
Header always set Cache-Control "no-cache, must-revalidate"
</FilesMatch>
</IfModule>
2. Erweiterter Exploit- & Bot-Scanner-Schutz (Sicherheit)
Problem: Der Standard-Exploit-Block von Joomla deckt nur sehr grundlegende Angriffe ab. Automatisierte Angriffe auf ungenutzte Pfade (z. B. WordPress-Dateien, .env, .git) belasten den Server nur unnötig.
# Blockiert Aufrufe von typischen Fremdsystem-Dateien & sensiblen Pfaden
RewriteRule ^(?:wp-admin|wp-content|wp-includes|wp-login\.php|xmlrpc\.php|vendor/phpunit)(?:/|$) - [F,L,NC]
RewriteRule (^|/)\.(?:env|git|svn|ht)(?:/|$) - [F,L,NC]
# Bekannte Exploit-Scanner direkt abweisen (kein Traffic an PHP verschwenden)
RewriteCond %{HTTP_USER_AGENT} (?:sqlmap|nikto|acunetix|netsparker|wpscan|dirbuster|gobuster|nmap) [NC]
RewriteRule ^ - [F,L]
3. Hotlink-Schutz für Bilder (Traffic-Schutz)
Problem: Andere Webseiten können Bilder deiner Seite direkt auf ihren eigenen Seiten einbetten, was deinen Traffic und Server-Ressourcen verbraucht.
<IfModule mod_rewrite.c>
# Bilder-Hotlinking unterbinden (Suchmaschinen & Messenger-Dienste erlaubt)
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?deine-domain\.de [NC]
RewriteCond %{HTTP_REFERER} !^https?://([a-z0-9-]+\.)?(google\.|bing\.com|facebook\.com|instagram\.com|t\.co|whatsapp\.com) [NC]
RewriteRule \.(?:gif|jpe?g|png|webp|avif)$ - [F,NC]
</IfModule>
