security - tutorial - xss types




Was ist der Unterschied zwischen CORS und CSPs? (3)

CORS ermöglicht die Aufhebung der gleichen Ursprungsrichtlinie für eine Domäne.

Wenn sich der Benutzer example.com sowohl bei example.com als auch bei example.org anmeldet, verhindert die Richtlinie "Gleiche Herkunft", dass example.com eine AJAX-Anforderung an " example.org/current_user/full_user_details und Zugriff auf die Antwort erhält.

Dies ist die Standardrichtlinie des Webs und verhindert, dass die Daten des Benutzers verloren gehen, wenn sie gleichzeitig an mehreren Standorten angemeldet sind.

Mit CORS konnte example.org eine Richtlinie festlegen, die besagt, dass der Ursprung https://example.com Antworten von AJAX lesen kann. Dies wäre der Fall, wenn sowohl example.com als auch example.org von demselben Unternehmen ausgeführt werden und die gemeinsame Nutzung von Daten zwischen den Ursprüngen im Browser des Benutzers erlaubt ist. Es betrifft nur die Client-Seite der Dinge, nicht die Server-Seite.

CSPs legen dagegen fest, welche Inhalte auf der aktuellen Site ausgeführt werden dürfen. Zum Beispiel, wenn JavaScript inline ausgeführt werden kann oder von welchen Domänen .js Dateien geladen werden können. Dies kann nützlich sein, um als weitere Verteidigungslinie gegen XSS Angriffe zu fungieren, bei denen der Angreifer versucht, Skripte in die HTML-Seite zu injizieren. Normalerweise würde die Ausgabe codiert werden , allerdings hätte der Entwickler nur auf einem Ausgabefeld vergessen. Da die Richtlinie das Ausführen von Inline-Skripten verhindert, wird der Angriff verhindert.

Aus meiner Sicht scheinen die Technologien, die als Cross-Origin Resource Sharing (CORS) und Content Security Policies (CSPs) bezeichnet werden, hinsichtlich Zweck und Implementierung sehr ähnlich zu sein.

Beide scheinen es Ihnen zu ermöglichen, die Ursprünge von Ressourcen, die eine kompromisslose Version Ihrer Webseite enthält, per HTTP-Response-Header zu whitelisten. Der einzige Unterschied, den ich sehen kann, ist, dass CSPs in der HTTP-Antwort genauer zu sein scheinen.


CORS ermöglicht einer Site A, der Site B die Berechtigung zu erteilen, (möglicherweise private) Daten von Site A zu lesen (unter Verwendung des Browsers und der Anmeldeinformationen des Besuchers).

CSP ermöglicht es einer Site, sich selbst vor dem Laden von (potenziell bösartigen) Inhalten aus unerwarteten Quellen zu schützen (z. B. zur Abwehr von XSS).


Keine der obigen Antworten gibt einen klaren und prägnanten Unterschied zwischen CSP und CORS. Hier ist meine Art, über sie nachzudenken:

Nehmen wir an, wir haben abc.com Website, die eine Anfrage an def.net senden möchte .

  1. Wenn der Benutzer abc.com im Browser aufruft, gibt der Server abc.com die HTTP-Antwort abc.com zurück. Die CSP-Einschränkung in dieser Antwort kann verhindern, dass abc.com im Browser eine Anforderung an def.net ausgibt
  2. Wenn in der HTTP-Antwort von abc.com keine CSP-Restriktion vorhanden ist, kann abc.com im Browser eine Anfrage an def.net senden
  3. Nach Erhalt der Anfrage antwortet def.net Server mit def.net HTTP Response , CORS Restriktion in dieser Antwort kann verhindern, dass abc.com im Browser geladen wird

So schützt CSP abc.com und CORS schützt def.net im obigen Beispiel.





cross-site