<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Content_Security_Policy</id>
	<title>Content Security Policy - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Content_Security_Policy"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Content_Security_Policy&amp;action=history"/>
	<updated>2026-05-27T10:10:43Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Content_Security_Policy&amp;diff=2342109&amp;oldid=prev</id>
		<title>imported&gt;Brodkey65: Änderungen von ~2025-31592-53 (Diskussion) auf die letzte Version von DavidFitness zurückgesetzt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Content_Security_Policy&amp;diff=2342109&amp;oldid=prev"/>
		<updated>2025-11-06T05:06:17Z</updated>

		<summary type="html">&lt;p&gt;Änderungen von &lt;a href=&quot;/index.php/Spezial:Beitr%C3%A4ge/~2025-31592-53&quot; title=&quot;Spezial:Beiträge/~2025-31592-53&quot;&gt;~2025-31592-53&lt;/a&gt; (&lt;a href=&quot;/index.php?title=Benutzer_Diskussion:~2025-31592-53&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Benutzer Diskussion:~2025-31592-53 (Seite nicht vorhanden)&quot;&gt;Diskussion&lt;/a&gt;) auf die letzte Version von &lt;a href=&quot;/index.php?title=Benutzer:DavidFitness&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Benutzer:DavidFitness (Seite nicht vorhanden)&quot;&gt;DavidFitness&lt;/a&gt; zurückgesetzt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;Content Security Policy&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;CSP&amp;#039;&amp;#039;&amp;#039;) ist ein [[Sicherheitskonzept]], um [[Cross-Site-Scripting]] und andere Angriffe durch Einschleusen von Daten in Webseiten zu verhindern.&amp;lt;ref name=&amp;quot;Stamm 2009&amp;quot; /&amp;gt; Es handelt sich um einen [[World Wide Web Consortium|W3C]]-Empfehlungskandidaten zur Sicherheit von Webanwendungen.&amp;lt;ref name=&amp;quot;CSPstatus&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
CSP wurde ursprünglich von der [[Mozilla Foundation]] entworfen und in Firefox 4.0 erstmals experimentell unterstützt.&lt;br /&gt;
&lt;br /&gt;
== Status ==&lt;br /&gt;
&lt;br /&gt;
Der offizielle Name des [[HTTP-Header-Feld]]s ist &amp;lt;code&amp;gt;Content-Security-Policy&amp;lt;/code&amp;gt;. [[Mozilla Firefox]] unterstützt diesen ab Version 23.&amp;lt;ref name=&amp;quot;MozillaBlog&amp;quot; /&amp;gt; [[Google Chrome]] ab Version 25.&amp;lt;ref name=&amp;quot;ChromiumBlog&amp;quot; /&amp;gt; Der [[Internet Explorer]] 10 und 11 unterstützen CSP über den Header &amp;lt;code&amp;gt;X-Content-Security-Policy&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Derzeit ist seitens W3C Version 3 in Ausarbeitung.&amp;lt;ref&amp;gt;[https://w3c.github.io/webappsec-csp/ Content Security Policy Level 3], Redakteurentwurf vom 4. August 2017, abgerufen am 16. August 2017.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Problem des klassischen Sicherheitskonzepts ==&lt;br /&gt;
&lt;br /&gt;
Webseiten können [[aktive Inhalte]] beispielsweise in Form von JavaScript-Code enthalten. Wenn die [[Webbrowser]] diesen Code ausführen, erzwingen sie die Einhaltung der [[Same-Origin-Policy]]. Dies bedeutet, dass Code von einer Quelle nicht auf Inhalte einer anderen Quelle zugreifen darf. So darf beispielsweise der Code in der Webseite eines Angreifers nicht auf die Elemente einer Onlinebanking-Webseite zugreifen.&lt;br /&gt;
&lt;br /&gt;
In der Praxis sind jedoch [[Cross-Site-Scripting]]-Schwachstellen sehr verbreitet, wodurch die Same-Origin-Policy ausgehebelt wird. Eine Cross-Site-Scripting-Schwachstelle entsteht, wenn sich eine Webseite durch fehlerhafte Maskierung Code unterschieben lässt. Aus Sicht des Browsers kommt dieser untergeschobene Code aus der gleichen Quelle wie die angegriffene Webseite.&lt;br /&gt;
&lt;br /&gt;
== Arbeitsweise ==&lt;br /&gt;
=== Konzept ===&lt;br /&gt;
Die Ursache für Cross-Site-Scripting-Schwachstellen liegt in der fehlerhaften dynamischen Generierung von Inhalten in Webanwendungen. Die Content Security Policy erzwingt daher eine strikte Trennung zwischen Inhaltsdaten im HTML-Code und externen Dateien mit JavaScript-Code. In der Regel sind externe JavaScript-Dateien statisch und werden nicht dynamisch generiert.&lt;br /&gt;
&lt;br /&gt;
=== Verbotene Konstrukte und Alternativen ===&lt;br /&gt;
Die Trennung zwischen Code und Daten wird folgendermaßen erreicht:&lt;br /&gt;
&lt;br /&gt;
; JavaScript-Blöcke&lt;br /&gt;
: der Form&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt; [code] &amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
müssen in externe Dateien in einer vertrauenswürdigen Domäne ausgelagert werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script src=&amp;quot;externalfile.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Alternativ können gesamte Code-Blöcke gehasht und als vertrauenswürdige Quelle angegeben werden.&lt;br /&gt;
&lt;br /&gt;
; setTimeout() und setInterval()&lt;br /&gt;
: dürfen nicht mehr in der Variante aufgerufen werden, die den Code in einer Zeichenfolge enthält:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
window.setTimeout(&amp;quot;[code]&amp;quot;, 100);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Stattdessen muss eine Referenz auf einen [[Rückruffunktion|Callback]] übergeben werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
window.setTimeout(function () { [code] }, 100);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; eval()&lt;br /&gt;
: sollte nach Möglichkeit vermieden werden. Moderne Browser bieten zum Parsen von Daten im [[JSON]]-Format die Funktionen&lt;br /&gt;
&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
JSON.parse(jsonString)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
an.&amp;lt;ref name=&amp;quot;NativeJSON&amp;quot; /&amp;gt; Über die Policy-Regel “&amp;lt;code&amp;gt;unsafe-eval&amp;lt;/code&amp;gt;” kann der Aufruf von &amp;lt;code&amp;gt;eval()&amp;lt;/code&amp;gt; explizit erlaubt werden, wodurch allerdings die Schutzfunktion von CSP eingeschränkt wird.&lt;br /&gt;
&lt;br /&gt;
; Event-Handler-Attribute&lt;br /&gt;
: wie zum Beispiel &amp;lt;code&amp;gt;onclick&amp;lt;/code&amp;gt; in&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;a id=&amp;quot;historyback&amp;quot; onclick=&amp;quot;history.back()&amp;quot;&amp;gt;…&amp;lt;/a&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
müssen durch von externem Code hinzugefügte Event-Listener ersetzt werden. Das Beispiel kann so in [[JavaScript]] umgesetzt werden:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
document.getElementById(&amp;quot;historyback&amp;quot;).addEventListener(&amp;quot;click&amp;quot;, function () { history.back(); });&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Das &amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;-Element wird hierbei über seine ID “&amp;lt;code&amp;gt;historyback&amp;lt;/code&amp;gt;” adressiert und ein Event-Listener für das &amp;lt;code&amp;gt;click&amp;lt;/code&amp;gt;-Ereignis hinzugefügt.&lt;br /&gt;
&lt;br /&gt;
=== Evaluierung, Reporting ===&lt;br /&gt;
Um die Auswirkungen der Aktivierung der CSP für eine Web-Applikation zu prüfen, ohne aber die CSP selbst durchzusetzen, sieht der W3C-Entwurf eine Möglichkeit vor, Verletzungen der CSP über die über &amp;lt;code&amp;gt;report-uri&amp;lt;/code&amp;gt; angegebene URL zu protokollieren. Hierzu muss der &amp;#039;&amp;#039;report-only&amp;#039;&amp;#039;-Modus mittels &amp;lt;code&amp;gt;Content-Security-Policy-Report-Only&amp;lt;/code&amp;gt;-Header verwendet werden.&amp;lt;ref&amp;gt;[https://www.phpgangsta.de/die-reporting-funktion-der-content-security-policy-csp Die Reporting-Funktion der Content-Security-Policy (CSP)]. Artikel vom 30. August 2011, abgerufen am 14. August 2017.&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;[https://www.w3.org/TR/CSP/#cspro-header The Content-Security-Policy-Report-Only HTTP Response Header Field]&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dieses Reporting ist jedoch problematisch, da Sicherheitsforscher bereits vorgezeigt haben, wie diese Reports absichtlich falsch gesendet werden können und so die Aufmerksamkeit der Administratoren im Rahmen eines Angriffs an eine falsche Stelle gezogen wird. Dieses Verhalten lässt sich nicht einfach beheben, da der Report vom Browser gesendet wird und nicht vom Server.&amp;lt;ref&amp;gt;{{Internetquelle |url=https://www.secjuice.com/red-team-flaring-using-report-uri/ |titel=Flaring The Blue Team - When You Confuse Them You Lose Them |datum=2018-11-04 |abruf=2019-12-27 |sprache=en}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [https://www.w3.org/TR/CSP/ Content Security Policy Level 3], W3C-Arbeitsentwurf vom 13. September 2016, abgerufen am 14. August 2017.&lt;br /&gt;
* [https://w3c.github.io/webappsec-csp/ Content Security Policy Level 3], Redakteurentwurf vom 4. August 2017, abgerufen am 14. August 2017.&lt;br /&gt;
* [https://d-mueller.de/blog/content-security-policy-tutorial/ Content Security Policy Tutorial]. Artikel vom 24. September 2012, abgerufen am 14. August 2017.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;Stamm 2009&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
 |autor=Sid Stamm&lt;br /&gt;
 |url=https://wiki.mozilla.org/index.php?title=Security/CSP/Spec&amp;amp;oldid=133465&lt;br /&gt;
 |titel=Security/CSP/Spec - MozillaWiki&lt;br /&gt;
 |titelerg=Background&lt;br /&gt;
 |werk=wiki.mozilla.org&lt;br /&gt;
 |datum=2009-03-11&lt;br /&gt;
 |sprache=en&lt;br /&gt;
 |zitat=Content Security Policy is intended to help web designers or server administrators specify how content interacts on their web sites. It helps mitigate and detect types of attacks such as XSS and data injection.&lt;br /&gt;
 |abruf=2011-06-29}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;MozillaBlog&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
 |url=https://blog.mozilla.org/security/2013/06/11/content-security-policy-1-0-lands-in-firefox/&lt;br /&gt;
 |titel=Content Security Policy 1.0 Lands In Firefox&lt;br /&gt;
 |datum=2013-06-11&lt;br /&gt;
 |sprache=en&lt;br /&gt;
 |abruf=2015-12-01}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;ChromiumBlog&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
 |url=https://blog.chromium.org/2013/01/content-security-policy-and-shadow-dom.html&lt;br /&gt;
 |titel=Chrome 25 Beta: Content Security Policy and Shadow DOM&lt;br /&gt;
 |hrsg=Google&lt;br /&gt;
 |datum=2013-01-14&lt;br /&gt;
 |sprache=en&lt;br /&gt;
 |abruf=2013-04-02}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;NativeJSON&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
 |autor=Alexis Deveria&lt;br /&gt;
 |url=https://caniuse.com/json&lt;br /&gt;
 |titel=Native JSON&lt;br /&gt;
 |sprache=en&lt;br /&gt;
 |abruf=2017-08-14}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;ref name=&amp;quot;CSPstatus&amp;quot;&amp;gt;&lt;br /&gt;
{{Internetquelle&lt;br /&gt;
 |url=https://www.w3.org/TR/CSP/#status&lt;br /&gt;
 |titel=Content Security Policy Level 2&lt;br /&gt;
 |titelerg=Status of this document&lt;br /&gt;
 |datum=2015-07-21&lt;br /&gt;
 |sprache=en&lt;br /&gt;
 |abruf=2015-12-01}}&lt;br /&gt;
&amp;lt;/ref&amp;gt;&lt;br /&gt;
&amp;lt;/references&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Sicherheitssoftware]]&lt;br /&gt;
[[Kategorie:Web-Entwicklung]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Brodkey65</name></author>
	</entry>
</feed>