Raketenwilli: Content-Security-Policy

Beitrag lesen

Muss foo.example.com sagen, dass Code, der von ihm kommt, Cross-Origin Requests machen darf?

Ja.

Und wohin.

Muss localhost:54321 den an ihn gestellten Request damit beantworten, dass foo.example.com (oder meinetwegen auch *) das darf?

Nö.

Beispiel:

Du macht eine Webseite, z.B. mit User-Content oder Daten Dritter und befürchtest, dass Benutzer (z.B. in Kommentaren) JS-Code oder sonstwas einbauen, was dann Code oder anderes Zeug von dritten Webservern einbindet.

Mit etwas wie

Content-Security-Policy: default-src 'self' cdn.example.org;

erlaubst nur dass Zeug vom gleichen HTTP-Host oder von cdn.example.org geholt und vor allem in die Webseite eingebaut wird. Der Browser überwacht darauf hin die Requests, welche von JS oder sonstwas in der Webseite ausgelöst werden.

Das ist also sowas wie eine zweite Verteidigungslinie. Macht man vor allem wenn man den „Truppen an der Front“ (dem Framework...) nicht vertraut.

Macht man das so wie oben bekommt man tolle Buttons.