Neuigkeiten:

moziloCMS verwendet Cookies. Wenn Sie auf unserer Seite weitersurfen, stimmen Sie der Cookie-Nutzung zu Datenschutzerklärung
moziloCMS Layouts
moziloCMS Plugins

Hauptmenü
-Menü

Beiträge anzeigen

Dieser Abschnitt erlaubt es dir, alle Beiträge anzusehen, die von diesem Mitglied geschrieben wurden. Beachte, dass du nur Beiträge sehen kannst, die in Teilen des Forums geschrieben wurden, auf die du aktuell Zugriff hast.

Beiträge anzeigen-Menü

Themen - bernhard_u

#1
Hallo zusammen,
ich möchte einen wichtigen Tipp zum Thema Sicherheit und Performance mit euch teilen, der besonders für alle relevant ist, die moziloCMS im Shared Hosting (z. B. bei IONOS oder ähnlichen Massenhostern) betreiben.
Problem
Wenn mann z.B. eine .htaccess-Regel hat, um auf HTTPS und das "www." vor der Domain umzuleiten ähnlich wie dieser hier:
# ACHTUNG: BEISPIEL FÜR EINE UNSICHERE REGEL!
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.meine-domain.de/$1 [R=301,L]
Die Schwachstelle liegt im Detail: Die Bedingung prüft nur, ob die Eingabe nicht mit www. beginnt.
Wenn nun ein Angreifer die manipulierte Adresse www.evil.com an deinen Server schickt, fragt die Bedingung: Beginnt www.evil.com nicht mit www.? Nein, sie beginnt ja mit www. (falsch).
Da die Bedingung damit fehlschlägt, wird die sichere Weiterleitung übersprungen. Der Server bricht die Prüfung ab und reicht die manipulierte Fremddomain www.evil.com ungefiltert weiter in das CMS. Ein Angreifer kann dann bei seinem Aufruf einfach einen manipulierten HTTP-Host-Header wie "www.evil.com" mitsenden.
Das birgt im Shared Hosting das Risiko von "Host Header Spoofing", da dort aus Kompatibilitätsgründen fast immer die Apache-Einstellung "UseCanonicalName Off" aktiv ist. Dadurch reicht der Webserver einem manipulierten Host-Header wie ("www.evil.com") ungefiltert an PHP und damit direkt an moziloCMS weiter, was für Phishing-Angriffe oder schädliche Link-Injektionen missbraucht werden kann.
Abhilfe
Hier ist eine optimierte und gehärtete Version für die .htaccess, die dieses Problem radikal löst und gleichzeitig die Ladezeit verbessert ("www.deine-domain.de" muss natürlich gegen die echte Domain getauscht werden):
RewriteEngine On
RewriteBase /
# 1. SCHUTZ VOR HOST-SPOOFING & HTTPS/WWW-ZWANG
# Wenn der Host NICHT exakt deine Domain ist OR HTTPS aus ist...
RewriteCond %{HTTP_HOST} !^www\.deine-domain\.de$ [NC,OR]
RewriteCond %{HTTPS} off
# ...dann jage ALLES sofort auf die korrekte, sichere URL.
# Das wäscht jeden gefälschten Host-Header sauber, bevor er mozilo erreicht.
RewriteRule ^(.*)$ https://www.deine-domain.de/$1 [L,R=301]
# 2. Mozilo Standard-Regeln (unverändert, aber sauber getrennt)
# mozilo_start
...
...
# mozilo_end

Was wurde hier genau verbessert?
Maximale Sicherheit gegen Host-Spoofing Die neue Regel prüft exakt gegen deine echte Domain: !^www.deine-domain.de$ (Ist es NICHT exakt meine Domain?). Jeder falsche oder manipulierte Host erzwingt sofort einen harten 301-Redirect auf deine echte Domain, wodurch der schädliche Header weggewaschen wird, bevor Schaden entsteht.
Performance-Schub (1-Step-Redirect statt Ketten) Wer früher "http://meine-domain.de" (ohne HTTPS und ohne www) aufgerufen hat, flog oft durch eine Kette: Erst der Redirect auf HTTPS, dann ein zweiter Redirect auf WWW. Das sind zwei HTTP-Requests, die spürbar auf die Time to First Byte (TTFB) schlagen und die Core Web Vitals verschlechtern. Durch die logische Verknüpfung mit [,OR] in der neuen Version wird jede falsche Kombination in einem einzigen Schritt direkt auf die Ziel-URL korrigiert.

Quellen und weiterführende Informationen für technisch Interessierte:
OWASP Web Security Testing Guide:
Die OWASP beschreibt in diesem Dokument im Detail, wie Angreifer unvalidierte Host-Header ausnutzen können (z. B. für Cache-Poisoning oder die Manipulation von Passwort-Reset-Funktionen). Die dortige Empfehlung besagt klar, dass eine strikte Validierung der Header-Werte stattfinden muss. Da man im Shared Hosting die globale Serverkonfiguration nicht anpassen kann, simulierst unsere .htaccess-Regel genau dieses geforderte Whitelisting:
https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/07-Input_Validation_Testing/17-Testing_for_Host_Header_Injection
PortSwigger Web Security Academy:
Eine exzellente, praxisnahe Aufarbeitung der Angriffsvektoren (wie Cache-Poisoning oder das Einschleusen schädlicher Payloads), die durch unvalidierte Host-Header entstehen, findet sich im Fachbereich der PortSwigger Academy:
https://portswigger.net/web-security/host-header

Beste Grüße und viel Erfolg beim Härten eurer moziloCMS-Installationen!

#2
Hallo zusammen,

ich habe ein neues Plugin für moziloCMS 2.0 / 3.0 entwickelt und möchte es hier vorstellen.

IndexNow ist ein offener Standard, der es Websitebetreibern ermöglicht, Suchmaschinen wie Bing und Yandex sofort über neue oder geänderte Inhalte zu informieren – anstatt zu warten bis der Crawler die Seite von selbst neu besucht. Eine einzige Anfrage an api.indexnow.org reicht aus, der Dienst verteilt die URLs intern an alle teilnehmenden Suchmaschinen.

Das Plugin indexnow integriert diesen Standard direkt ins moziloCMS-Backend. Der besondere Mehrwert: die Sitemap wird per HTTP abgerufen, dadurch werden die Slug-URLs des _seo_urls Plugins automatisch korrekt übernommen – ohne manuelle Konfiguration. Ist _seo_urls nicht vorhanden oder nicht aktiv, werden einfach die in der Sitemap vorhandenen URLs verwendet – das Plugin funktioniert also auch ohne _seo_urls. Der Zeitpunkt der Übermittlung bleibt dabei bewusst in der Hand des Nutzers, da moziloCMS keinen Freigabe-Mechanismus für Inhalte kennt.

Funktionen:
  • Sitemap-Abruf per HTTP – Slug-URLs des _seo_urls Plugins werden automatisch übernommen, wenn vorhanden und aktiv
  • Hostname und Sitemap-URL werden automatisch erkannt, nur der API-Key muss konfiguriert werden
  • Admin-Panel direkt im moziloCMS-Backend erreichbar
  • Debug-Modus: zeigt extrahierte URLs und JSON-Payload, ohne etwas zu senden

Voraussetzungen: PHP 8.x, allow_url_fopen = On, API-Key von bing.com/indexnow/getstarted

Infos zu Bing Webmaster Tools: https://www.bing.com/webmasters

Download & Sourcecode: github.com/bernhardunger/moziloCMS_indexnow_plugin

Feedback und Fragen gerne hier im Thread.
#3
Hallo zusammen,
bei der Auswertung meiner Website mit der Google Search Console ist mir aufgefallen, dass URLs mit Umlauten oder Leerzeichen von Google teilweise nicht korrekt indexiert werden. Da moziloCMS solche URLs standardmäßig erzeugt, habe ich ein Plugin entwickelt, das automatisch SEO freundliche URLs erstellt – ohne Änderungen am CMS Core.
Das Plugin arbeitet vollständig zur Laufzeit und greift weder in den Admin Bereich noch in den Editor ein. Besucher und Suchmaschinen bekommen dadurch ausschließlich saubere und gut lesbare URLs zu sehen.

Was macht das Plugin konkret?
  • Erzeugt automatisch SEO freundliche URL (Slugs) Umwandlungen von: ä nach ae, ö nach oe, ü nach ue, ß nach ss, Leerzeichen nach Bindestrichen, alles in Kleinbuchstaben
  • Passt alle internen Links automatisch an die neuen SEO URLs an, sodass keine manuellen Änderungen notwendig sind
  • Leitet Aufrufe alter URLs mit Umlauten per 301 Redirect korrekt weiter (SEO konform, keine Duplicate Content Probleme)
  • Erzeugt automatisch eine sitemap.xml mit den optimierten URLs
  • POST Requests bleiben unverändert (wichtig z.B. für Formular Plugins)
  • Kompatibel mit dem i18n Plugin (Query Parameter wie ?i18n=en werden durchgereicht)
  • Admin Bereich und CMS Editor bleiben vollständig unangetastet
  • Optionaler Debug Modus zur Anzeige des Mappings der internen URLs und der optimierten URLs

Voraussetzungen:
  • moziloCMS 3.0.x (2.x bisher nicht getestet)
  • Apache mit aktivem mod_rewrite
  • Kleine Anpassungen der .htaccess sind notwendig siehe Dokumentation(der moziloCMS Core bleibt unverändert)

Dokumentation
Ist hier verfügbar: https://github.com/bernhardunger/moziloCMS_seo_plugin

Download:
Hier im unteren Bereich "Source code (ZIP)" auswählen
https://github.com/bernhardunger/moziloCMS_seo_plugin/releases/tag/v1.1.2

Ich habe das Plugin mit internen CMS Funktionen sowie mit aktivem Formular  und i18n Plugin getestet. Trotzdem empfehle ich, es vor einem produktiven Einsatz zunächst in einer Testumgebung zu prüfen!
Feedback, Tests und Anmerkungen sind willkommen :-)

Viele Grüße

Bernhard
#4
Hallo zusammen,

jetzt ist mir beim Testen noch folgendes Verhalten aufgefallen:
Im template.html <head> habe ich definiert:
<title>{CATEGORY} | {PAGE_NAME} | Steuerkanzlei München</title>
Bei einer Inhaltseite wird z.B. korrekt ersetzt:
<title>Startseite | Willkommen | Steuerkanzlei München</title>
Bei der Sitemap: mit https://www.meine-domain.de/index.php?action=sitemap fehlen die Ersetzungen:
<title> |  | Steuerkanzlei München</title>

Ist das schon bekannt und gibt es evtl. einen Fix oder Workaround dafür?

Danke und viele Grüße

Bernhard
#5
Hallo zusammen,
ich verwende für meine Internet-Seite ein template mit {CANONICAL_LINK} wie hier angedeutet:
...
   <meta name="robots" content="index,follow" />
   {CANONICAL_LINK}
...
Das funktioniert für Kategorien und Inhaltseiten gut und ohne Probleme. Bei Anzeigen der dynamisch generierten Sitemap mit: https://www.meine-domain.de/index.php?action=sitemap habe ich im HTML:
<link rel="canonical" href="https://www.meine-domain.de/.html">
Hier fehlt also der Dateiname.
Hat jemand eine Idee wie man dieses Problem lösen kann, oder gibt es hier evtl. schon eine Forum-Eintrag?
Ich nutze mozilo 3.0.4 ("Hope") - stabil und PHP 8.4.18

Vielen Dank und viele Grüße
Bernhard