Ursprung
Der Ursprung von Webinhalt wird durch das Schema (Protokoll), den Hostname (Domain) und den Port der URL definiert, die zum Zugriff darauf verwendet wird. Zwei Objekte haben nur dann denselben Ursprung, wenn Schema, Hostname und Port übereinstimmen.
Einige Operationen sind auf Inhalte mit demselben Ursprung beschränkt, und diese Beschränkung kann durch CORS aufgehoben werden.
Opaquer Ursprung
Ein opaker Ursprung ist eine spezielle Art von browserinternem Wert, der den wahren Ursprung einer Ressource verschleiert (opake Ursprünge werden immer als null serialisiert). Sie werden vom Browser verwendet, um die Isolation von Ressourcen sicherzustellen, da sie niemals als gleich mit einem anderen Ursprung angesehen werden — einschließlich anderer opaker Ursprünge.
Opake Ursprünge werden in Fällen angewendet, in denen der wahre Ursprung einer Ressource sensibel ist, nicht sicher für Sicherheitsüberprüfungen verwendet werden kann oder nicht existiert. Eine Ressource mit einem opaken Ursprung wird in Anfragen ihren Origin HTTP-Header auf null gesetzt haben. Sie wird auch bei Überprüfungen auf denselben Ursprung mit jeder anderen Ressource scheitern und ist daher nur auf diejenigen Operationen beschränkt, die für Cross-Origin-Ressourcen verfügbar sind.
Häufige Fälle, in denen opake Ursprünge verwendet werden, sind:
- Ein Dokument innerhalb eines iframes, das das sandbox Attribut gesetzt hat und nicht das
allow-same-originFlag enthält. file:URLs werden in der Regel als opake Ursprünge behandelt, damit Dateien im Dateisystem nicht gegenseitig gelesen werden können.- Dokumente, die programmatisch unter Verwendung von APIs wie
DOMImplementation.createDocument()erstellt werden.
Beispiele
Diese haben denselben Ursprung, da sie dasselbe Schema (http) und denselben Hostname (example.com) haben, und der unterschiedliche Dateipfad spielt keine Rolle:
http://example.com/app1/index.htmlhttp://example.com/app2/index.html
Diese haben denselben Ursprung, da ein Server HTTP-Inhalte standardmäßig über Port 80 liefert:
http://example.com:80http://example.com
Diese haben nicht denselben Ursprung, da sie unterschiedliche Schemata verwenden:
http://example.com/app1https://example.com/app2
Diese haben nicht denselben Ursprung, da sie unterschiedliche Hostnamen verwenden:
http://example.comhttp://www.example.comhttp://myapp.example.com
Diese haben nicht denselben Ursprung, da sie unterschiedliche Ports verwenden:
http://example.comhttp://example.com:8080
Siehe auch
- Same-Origin-Policy
- Zugehörige Glossarbegriffe:
- HTML-Spezifikation: Ursprung