4. Origin of a URI (Ursprung eines URI)
4. Origin of a URI (Ursprung eines URI)
Der Ursprung eines URI ist der durch den folgenden Algorithmus berechnete Wert:
-
Wenn der URI kein hierarchisches Element als Benennungsautorität verwendet (siehe [RFC3986], Abschnitt 3.2) oder wenn der URI kein absoluter URI ist, dann generiere einen neuen global eindeutigen Bezeichner und gib diesen Wert zurück.
HINWEIS: Die mehrfache Ausführung dieses Algorithmus für denselben URI kann jedes Mal unterschiedliche Werte erzeugen. Typischerweise berechnen User-Agents den Ursprung eines HTML-Dokuments beispielsweise einmal und verwenden diesen Ursprung für nachfolgende Sicherheitsprüfungen, anstatt den Ursprung für jede Sicherheitsprüfung neu zu berechnen.
-
Sei
uri-schemedie Schema-Komponente des URI, in Kleinbuchstaben umgewandelt. -
Wenn die Implementierung das durch
uri-schemeangegebene Protokoll nicht unterstützt, dann generiere einen neuen global eindeutigen Bezeichner und gib diesen Wert zurück. -
Wenn
uri-scheme"file" ist, KANN die Implementierung einen implementierungsdefinierten Wert zurückgeben.HINWEIS: Historisch haben User-Agents Inhalten aus dem file-Schema eine enorme Menge an Privilegien gewährt. Das Gewähren so weitreichender Privilegien an alle lokalen Dateien kann jedoch zu Privilege-Escalation-Angriffen führen. Einige User-Agents haben erfolgreich lokalen Dateien verzeichnisbasierte Privilegien gewährt, aber dieser Ansatz wurde nicht weit verbreitet übernommen. Andere User-Agents verwenden global eindeutige Bezeichner für jeden file-URI, was die sicherste Option ist.
-
Sei
uri-hostdie Host-Komponente des URI, in Kleinbuchstaben umgewandelt (unter Verwendung der in [RFC4790] definierten i;ascii-casemap-Collation).HINWEIS: Dieses Dokument geht davon aus, dass der User-Agent beim Konstruieren des URI IDNA (Internationalizing Domain Names in Applications)-Verarbeitung und -Validierung durchführt. Insbesondere geht dieses Dokument davon aus, dass
uri-hostnur LDH-Labels enthalten wird, da der User-Agent bereits alle Nicht-ASCII-Labels in ihre entsprechenden A-Labels umgewandelt hat (siehe [RFC5890]). Aus diesem Grund sind ursprungsbasierte Sicherheitsrichtlinien empfindlich gegenüber dem vom User-Agent verwendeten IDNA-Algorithmus. Siehe Abschnitt 8.4 für weitere Diskussionen. -
Wenn es keine Port-Komponente des URI gibt:
- Sei
uri-portder Standardport für das durchuri-schemeangegebene Protokoll.
Andernfalls:
- Sei
uri-portdie Port-Komponente des URI.
- Sei
-
Gib das Tripel
(uri-scheme, uri-host, uri-port)zurück.