4. Origin of a URI (Origine d'un URI)
4. Origin of a URI (Origine d'un URI)
L'origine d'un URI est la valeur calculée par l'algorithme suivant:
-
Si l'URI n'utilise pas un élément hiérarchique comme autorité de nommage (voir [RFC3986], Section 3.2) ou si l'URI n'est pas un URI absolu, alors générer un nouvel identifiant globalement unique et retourner cette valeur.
NOTE: L'exécution de cet algorithme plusieurs fois pour le même URI peut produire des valeurs différentes à chaque fois. Typiquement, les agents utilisateurs calculent l'origine d'un document HTML, par exemple, une fois et utilisent cette origine pour les vérifications de sécurité ultérieures plutôt que de recalculer l'origine pour chaque vérification de sécurité.
-
Soit
uri-schemele composant de schéma de l'URI, converti en minuscules. -
Si l'implémentation ne prend pas en charge le protocole donné par
uri-scheme, alors générer un nouvel identifiant globalement unique et retourner cette valeur. -
Si
uri-schemeest "file", l'implémentation PEUT retourner une valeur définie par l'implémentation.NOTE: Historiquement, les agents utilisateurs ont accordé au contenu provenant du schéma file une quantité énorme de privilèges. Cependant, accorder à tous les fichiers locaux des privilèges aussi étendus peut conduire à des attaques d'escalade de privilèges. Certains agents utilisateurs ont réussi à accorder aux fichiers locaux des privilèges basés sur les répertoires, mais cette approche n'a pas été largement adoptée. D'autres agents utilisateurs utilisent des identifiants globalement uniques pour chaque URI de fichier, ce qui est l'option la plus sûre.
-
Soit
uri-hostle composant hôte de l'URI, converti en minuscules (en utilisant la règle de classement i;ascii-casemap définie dans [RFC4790]).NOTE: Ce document suppose que l'agent utilisateur effectue le traitement et la validation IDNA (Internationalizing Domain Names in Applications) lors de la construction de l'URI. En particulier, ce document suppose que
uri-hostne contiendra que des étiquettes LDH car l'agent utilisateur aura déjà converti toutes les étiquettes non-ASCII en leurs A-labels correspondants (voir [RFC5890]). Pour cette raison, les politiques de sécurité basées sur l'origine sont sensibles à l'algorithme IDNA employé par l'agent utilisateur. Voir la Section 8.4 pour plus de discussion. -
S'il n'y a pas de composant port de l'URI:
- Soit
uri-portle port par défaut pour le protocole donné paruri-scheme.
Sinon:
- Soit
uri-portle composant port de l'URI.
- Soit
-
Retourner le triplet
(uri-scheme, uri-host, uri-port).