Content-Security-Policy CSP mal wieder… – Bitte um Korrektur meiner htaccess-Regel

  • Eigentlich funktioniert meine htaccess bisher ganz gut – so glaubte ich jedenfalls. Zumindest macht sie bei den alten J3 Websites keine Probleme. Nun bin ich dabei, die beiden Produktivseiten auf J4 umzustellen und zugleich eine attraktivere Gestaltung zu verwirklichen. Dazu setze ich YOOtheme Pagebuilder ein und vermeide damit, dass ich mich in die neuesten CSS-Geheimnisse einarbeiten muss.

    Im Frontend sieht die in Entwicklung befindliche Seite gut aus, trotz einiger Fehlermeldungen im Firefox Inspector. Alles funktioniert dennoch.

    Im Backend ebenfalls, solange ich den Pagebuilder nicht benutze! Benutze ich ihn, so werden alle Gestaltungselemente ohne deren zugehörige Bedienungs-Icons angezeigt, sodass die Arbeit damit zumindest erheblich erschwert wird – besonders für mich als Einsteiger. Die Icons werden normaler Weise auf den Elementen sichtbar, sobald man mit der Maus drüber fährt.


    Ursächlich ist nach meinen bisherigen Versuchen die Zeile mit der Content-Security-Policy, die ich in meiner htaccess habe:

    Code
    Header set Content-Security-Policy: "default-src 'self' 'unsafe-inline' https://meine-website.org https://mein-matomo-andere-domain.de"

    Setze ich nur:

    Code
    Header set Content-Security-Policy: "default-src 'self' https://mein-matomo-andere-domain.de"

    dann funktioniert der Pagebuilder. Evtl. ist 'unsafe-inline' die Ursache. Allerdings nutze ich durchaus auch Inline-code, auch in einer bezahlten Extension ist Inline-code enthalten.


    Wenn ich den Pagebuilder nutze, während der Fehler auftritt, gibt es keine zusätzlichen Fehlermeldungen im Firefox-Inspector. Daher habe ich keinen Hinweis darauf, was falsch ist an meiner CSP-Regel. Auch die mir bekannten Online-Testwebsites, mit denen http-Header geprüft werden können, brachten mich nicht weiter und auch nicht der gute Beitrag von Astrid Günter.


    Was soll mir die CSP-Regel bringen?

    Es soll nur Content von meiner eigenen Domain geladen werden einschließlich Inline-Code und es soll zugelassen werden, dass Script und iFrame von der meiner Matomo-Domain geladen wird. Wenn ich in Beiträgen zu externen Quellen verlinke, dann sollen diese in einem neuen Browserfenster geöffnet werden.


    Wie muss dann meine CSP-Regel formuliert werden?

  • Für Fehlermeldungen im Browser kann man gut in die Browserkonsole des Google Chrome schauen die ist da ggfs sogar etwas ausführlicher.

    Was auch möglich ist wäre einen csp reporter einzubauen. Dann werden Fehlermeldungen direkt gesammelt. Hatte dafür mal das hier gebaut: https://github.com/zero-24/csp-reporter-php


    Um eine CSP zu bauen würde ich spezifisch vorgehen z.B. unsafe-inline in der script-src oder style-src direktive. Und den matomo in der script-src und frame-src etc. ggfs hilft dir das schon weiter.