4. Origin of a URI (Origine di un URI)
4. Origin of a URI (Origine di un URI)
L'origine di un URI è il valore calcolato dal seguente algoritmo:
-
Se l'URI non utilizza un elemento gerarchico come autorità di denominazione (vedere [RFC3986], Sezione 3.2) o se l'URI non è un URI assoluto, generare un nuovo identificatore globalmente univoco e restituire quel valore.
NOTA: L'esecuzione di questo algoritmo più volte per lo stesso URI può produrre valori diversi ogni volta. Tipicamente, gli user agent calcolano l'origine di, ad esempio, un documento HTML una volta e utilizzano quell'origine per i successivi controlli di sicurezza piuttosto che ricalcolare l'origine per ogni controllo di sicurezza.
-
Sia
uri-schemeil componente schema dell'URI, convertito in minuscolo. -
Se l'implementazione non supporta il protocollo dato da
uri-scheme, generare un nuovo identificatore globalmente univoco e restituire quel valore. -
Se
uri-schemeè "file", l'implementazione PUÒ restituire un valore definito dall'implementazione.NOTA: Storicamente, gli user agent hanno concesso al contenuto dallo schema file una quantità enorme di privilegi. Tuttavia, concedere a tutti i file locali privilegi così ampi può portare ad attacchi di escalation dei privilegi. Alcuni user agent hanno avuto successo nel concedere ai file locali privilegi basati su directory, ma questo approccio non è stato ampiamente adottato. Altri user agent utilizzano identificatori globalmente univoci per ogni URI di file, che è l'opzione più sicura.
-
Sia
uri-hostil componente host dell'URI, convertito in minuscolo (utilizzando la regola di confronto i;ascii-casemap definita in [RFC4790]).NOTA: Questo documento presuppone che l'user agent esegua l'elaborazione e la convalida IDNA (Internationalizing Domain Names in Applications) durante la costruzione dell'URI. In particolare, questo documento presuppone che
uri-hostconterrà solo etichette LDH perché l'user agent avrà già convertito qualsiasi etichetta non-ASCII nei loro A-label corrispondenti (vedere [RFC5890]). Per questo motivo, le politiche di sicurezza basate sull'origine sono sensibili all'algoritmo IDNA impiegato dall'user agent. Vedere la Sezione 8.4 per ulteriori discussioni. -
Se non c'è un componente porta dell'URI:
- Sia
uri-portla porta predefinita per il protocollo dato dauri-scheme.
Altrimenti:
- Sia
uri-portil componente porta dell'URI.
- Sia
-
Restituire la tripla
(uri-scheme, uri-host, uri-port).