Zum Hauptinhalt springen

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:

  1. 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.

  2. Sei uri-scheme die Schema-Komponente des URI, in Kleinbuchstaben umgewandelt.

  3. Wenn die Implementierung das durch uri-scheme angegebene Protokoll nicht unterstützt, dann generiere einen neuen global eindeutigen Bezeichner und gib diesen Wert zurück.

  4. 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.

  5. Sei uri-host die 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-host nur 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.

  6. Wenn es keine Port-Komponente des URI gibt:

    1. Sei uri-port der Standardport für das durch uri-scheme angegebene Protokoll.

    Andernfalls:

    1. Sei uri-port die Port-Komponente des URI.
  7. Gib das Tripel (uri-scheme, uri-host, uri-port) zurück.