Bimmelbeule: Wie sinnvoll ist ein CSP-Header, wenn ich keine Scripts verwende?

Hallo!

Die Testseiten

https://webpagetest.org/

https://webbkoll.dataskydd.net/

meckern beide auf meiner Seite

https://schindel-schwinger.flohheim.de/

einen fehlenden Content-Security-Policy-Header an. Also so was wie:

<meta http-equiv="Content-Security-Policy" content="script-src 'self'">

Das irritiert mich etwas, da ich auf meinen Seiten keine Scripte (auch keine fremden Scripte von irgendwo) laufen habe.

Wenn ich mich über CSP-Header informiere steht da immer so was ähnliches wie:

…hilft BEISPIELSWEISE gegen "Cross Site Scripting (XSS) und Data-Injection-Angriffen"… also hilft es auch gegen "was anderes"?

Haben diese Dienste meine Seite jetzt genau untersucht und meckern trotz fehlender Scripte, weil diese Option tatsächlich sinnvoll ist (wofür zum Beispiel)? Oder geben die einfach grundsätzlich die Meldung ohne Prüfung raus, weil die meinen es gäbe keine Websites ohne Skripte?

Brauche ich das jetzt oder ist das Unsinn?

Grüße, Horst

  1. Hallo Bimmelbeule,

    gegen XSS und Data-Injection schützt man sich am besten durch korrekte Kontextbehandlung am Server. Dadurch kann ein böser Angreifer gar nicht erst toxischen Müll auf deine Seite bringen. Wenn er überhaupt bis dahin vordringen will und nicht gleich deinen Server kapert.

    Eine CSP ist sozusagen die zweite Verteidigungslinie, falls doch was schief geht. Die muss aber auch nicht zwingend in einem meta-Element stehen, die kann auch vom Server in einem Header kommen.

    Ob man sich bei einer https Verbindung Sorgen um eine Man-in-the-Middle Attacke machen muss, die böses Script ins HTML einschiebt, glaube ich eher nicht.

    Ich meine, dass eine CSP auch verhindert, dass jemand Bookmarklets auf deiner Seite anwendet, die ein Script-Element ergänzen und damit deine eigene Logik verändern könnten.

    Rolf

    --
    sumpsi - posui - obstruxi
    1. Eine CSP ist sozusagen die zweite Verteidigungslinie,

      Ich schwöre, Ich habe Deinem Beitrag nicht gelesen bevor ich

      Das Zeug ist sozusagen Deine zweite Verteidigungslinie

      geschrieben habe!

      @Bimmelbeule: wenn RolfB und meine Geringfügigkeit das gleiche schreiben stimmt es wahrscheinlich auch.

      1. Hallo RaketenParanoiker,

        um das mal realistischer zu formulieren: Wenn Du es auch schreibst, spricht das dafür, dass ich in meinem soliden Halbwissen auf die richtige Seite gekippt bin 😂

        Rolf

        --
        sumpsi - posui - obstruxi
    2. Hallo Rolf,

      Ob man sich bei einer https Verbindung Sorgen um eine Man-in-the-Middle Attacke machen muss, die böses Script ins HTML einschiebt, glaube ich eher nicht.

      Das größere Firmen HTTPS via Proxy aufmachen und am Inhalt rumspielen ist verbreitet und bekannt. Ich könnte dir das von mehreren Großfirmen bestätigen.

      Doch, davon muss man ausgehen.

      Freundliche Grüße,
      Christian Kruse

      1. Hallo Ingrid,

        Doch, davon muss man ausgehen.

        Was ich noch vergessen hatte: es gibt auch Browser, die Dinge injizieren.

        Freundliche Grüße,
        Christian Kruse

      2. Hallo Christian,

        ja, mein Arbeitgeber bricht ebenfalls HTTPS auf und re-signiert (resigniert liest sich merkwürdig) es mit dem eigenen Zertifikat. Und natürlich bekommen alle Computer in der Firmen-Domain das Firmenzertifikat als "natüüüürlich vollkommen vertrauenswürdig" aufgedrückt.

        Aber wenn das jemand tut, kann er auch die CSP-Header fälschen. Ob das ein Browser oder Browser-Plugin, der/das Werbung blocken oder hinzufügen möchte, auch tun kann? Weiß nicht. Ein Browser kann es bestimmt. Da ist CSP keine Hilfe.

        Weißt Du, ob CSP gegen die von mir erwähnten Bookmarklets hilft? Das ist mir gerade zu umständlich zu probieren (deswegen die Frage nach Wissen, nicht nach "kannst Du mal probieren"). Wenn nicht, bleibt CSP nur als zweite Verteidigungslinie gegen schlecht programierte Server.

        Rolf

        --
        sumpsi - posui - obstruxi
        1. Hallo Rolf,

          Aber wenn das jemand tut, kann er auch die CSP-Header fälschen.

          Meine Aussage war nicht, dass CSP-Header hier helfen.

          Ob das ein Browser oder Browser-Plugin, der/das Werbung blocken oder hinzufügen möchte, auch tun kann? Weiß nicht. Ein Browser kann es bestimmt. Da ist CSP keine Hilfe.

          CSP-Header helfen gegen Browser-Plugins, die JS injecten, das sehe ich z.B. immer hier im Forum. Gegen den Browser selber weiß ich es tatsächlich nicht, ich traue den Brave-Leuten nicht und werde mir den Browser deshalb auch nicht installieren.

          Weißt Du, ob CSP gegen die von mir erwähnten Bookmarklets hilft?

          Ja. Mit ausreichend strikten CSP-Header kann man keine Bookmarklets mehr auf der Seite ausführen. Darüber hat sich z.B. jemand auf meiner Seite beschwert.

          Freundliche Grüße,
          Christian Kruse

  2. Brauche ich das jetzt oder ist das Unsinn?

    Kommt darauf an.

    Wenn Du auch nur irgendwelche Inhalte von dritter Seite einbindest ist die Antwort ein klares „Ja“.

    Das kann sein:

    Gästebucheintrag, Wetterdaten, sogar einfache Sachen wie Login-Namen; alles aus fremden Quellen, was Du Dir nicht genau angeschaut hast oder nicht anschauen kannst.

    Das Zeug ist sozusagen Deine zweite Verteidigungslinie bei Angriffen auf Webseiten. (Die erste ist das saubere Behandeln von Daten aus Drittquellen durch die Skripte auf dem Server, eine weitere kann eine Firewall sein.)

    Daher ist es nicht weiter schlimm, wenn ein komplett irrer Paranoiker wie ich den grünen „A“-Button bekommt …

    https://observatory.mozilla.org/analyze/code.fastix.org

    … und die Webseite Deiner Bank womöglich nur B oder C.

    Du musst das also selbst wissen.

    1. Hallo RaketenParanoiker,

      ein komplett irrer Paranoiker

      Nur weil Du paranoid bist, bedeutet das nicht, dass keiner hinter Dir her ist.

      Rolf

      --
      sumpsi - posui - obstruxi
    2. Daher ist es nicht weiter schlimm, wenn ein komplett irrer Paranoiker wie ich den grünen „A“-Button bekommt …

      Ach so. Da habe ich mal „richtig“ rangeklotzt, um aus rein sportlichen Gründen zu erfahren, was man alles machen - und worauf man verzichten muss - um den zu bekommen.

      Grob gesagt muss man alles lokal vorhalten oder von explizit benannten Servern laden, Inline-CSS und Inline-JS sind nicht mehr möglich, man muss beides in entsprechenden Dateien vorhalten, kann das Zeug auch nicht mehr im Header notieren…

      Dafür oder dadurch lernt man aber eben auch, eine Menge Schluderreien künftig besser zu unterlassen.

  3. Erst mal vielen Dank für eure Antworten!

    Es scheint also tendenziell sinnvoll zu sein CSP&Co einzusetzen. Ich habe mich dafür entschieden, es erst mal mit der .htacess-Datei zu versuchen und habe einfach zum testen folgendes angehängt:

    Header add Content-Security-Policy "default-src 'self';"

    Hat mich aber nur auf Rating C gebracht… also noch das hier dran gehangen:

    Header always set X-Frame-Options "deny"

    Ging dann auf B hoch… erst ein weiteres:

    Header set X-Content-Type-Options "nosniff"

    Hat mich dann endlich auf A gebracht…

    Konsequenzen waren erst mal wenige zu sehen. Das es die Wetteronline-Snippets auf einigen meiner Gammel-Websites nicht mehr getan haben, war ja klar… allerdings hat es meine Nextcloud-Installation stark mitgenommen (hätte ich mir ja auch denken können)…

    Also erst mal alles wieder rückgängig gemacht. Ich überlege noch, ob ich mich jetzt tiefer in die .htacess-Datei-Innereien wühle, um zu versuchen meine Nextcloud-Installation irgendwie auszuschließen oder ob ich den Kram doch in die Header der Seiten übernehme (was ich sehr ungerne tun würde)…

    Lg, Bimmelbeule

    1. allerdings hat es meine Nextcloud-Installation stark mitgenommen

      Für die würde dazu raten, ich bequemerweise eine Subdomain einrichten. Vorteil: Du kannst die später auch mal auf einen Raspi oder besseres nach Hause umziehen.

      Und niemand sagt, dass der Hostname Nextcloud.DeineDomain.tld lauten sollte oder das Links auf den Server existieren müssen.…

      Das verschafft dann zwar keine Sicherheit - aber etwas Ruhe.

    2. Hallo Bimmelbeule,

      Das es die Wetteronline-Snippets auf einigen meiner Gammel-Websites nicht mehr getan haben, war ja klar

      Niemand zwingt Dich zu Content-Security-Policy "default-src 'self';". Das kann man auch erweitern und Fremdquellen zulassen.

      Rolf

      --
      sumpsi - posui - obstruxi