connyfuchs: CSP: In sandboxed iframe nur bestimmte Skripte erlauben?

Hallo zusammen,

ich bin neu in diesem Forum und konnte noch keine ähnliche Frage zu diesem Thema finden.

Zu meiner Frage: Ich nutze ein Soundcloud-Widget auf einer Homepage und habe ihm folgende CSP-Eigenschaften gegeben:


<iframe sandbox="allow-same-origin allow-scripts" ....>

Das Widget nutzt folgende Skripte: soundcloud.com, sndcdn.com (beide essenziell für die Funktion des Widgets), scorecardresearch.com und google-analytics.com. Die letzten beiden würde ich gerne blockieren. Aber geht das?

Ich habe auf der Seite selber folgenden Header eingefügt:

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

Aber die Skripte aus den iframes werden trotzdem ausgeführt, so als ob ich sie mit dem Header meiner Seite nicht erreichen könnte. Ich kann also, wenn ich das richtig sehe, nur alle Skripte in den iframes blockieren oder alle Skripte zulassen. Oder gibt es noch eine andere Möglichkeit?

Ich habe mich auch gerade erst in die CSP-Thematik eingelesen und kenne mich noch nicht sehr gut damit aus. Deshalb würde ich mich über ein paar Tipps freuen! :-)

Schonmal danke und liebe Grüße

  1. Hallo!

    Aber die Skripte aus den iframes werden trotzdem ausgeführt, so als ob ich sie mit dem Header meiner Seite nicht erreichen könnte.

    Korrekt, das kannst du meines Wissens nicht.

    Ich kann also, wenn ich das richtig sehe, nur alle Skripte in den iframes blockieren oder alle Skripte zulassen.

    Ja, das sehe ich auch so.

    Oder gibt es noch eine andere Möglichkeit?

    Nein, nicht dass ich wüsste. Sorry.

    CSP ist hauptsächlich dafür da um Cross-Site-Scripting zu verhindern. Ein iframe ist immer seine eigene "Origin", ist also sicherheitstechnisch von deiner Seite getrennt. Daher lassen sich keine Regeln für den Inhalt des iframes definieren (außer mit dem sandbox-Attribut). Deine CSP-Regeln gelten immer nur für die aktuelle Seite von deiner "Origin".

    Steht auch so in der Spezifikation wenns mich nicht täuscht: http://www.w3.org/TR/CSP2/#which-policy-applies

    "Any resource included via iframe, object, or embed: The policy of the embedding resource controls what may be embedded. The embedded resource, however, is controlled by the policy delivered with the resource, or the policy of the embedding resource if the embedded resource is a globally unique identifier (or a srcdoc frame)."

    Michi