La stessa politica di origine non è un assioma pulito e uniforme: in realtà è un insieme di regole specifiche e casi speciali fossilizzati nel Web moderno. Non è possibile definire la stessa politica di origine con una breve descrizione che raccolga correttamente i dettagli essenziali: i casi speciali contano in pratica.
Le regole per i cookie sono le regole di JS e non sono nemmeno perfettamente definite e indipendenti dal browser. I cookie sono molto debolmente protetti nel Web moderno a causa di queste regole fossilizzate, che devono essere prese in considerazione nella progettazione di un'identificazione Web sicura:
- Il grado di comunicazione tra sottodomini consentito dai cookie è estremamente utile (un sottodominio può impostare un cookie che viene utilizzato da un altro) ma anche una potenziale fonte di confusione, poiché il browser non invierà un cookie con il nome del dominio che lo ha impostato.
- Un cookie impostato su una pagina Web http verrà rinviato allo stesso dominio su una pagina Web https, senza indicazione dell'origine.
Al contrario, le moderne tecnologie Web in grado di archiviare dati (come localStorage e sessionStorage) nell'archivio del browser (insieme al "cookie jar") sono separate strettamente per origine con il dominio esatto e lo schema URL.
L'inclusione di un'immagine da un altro sito non deve essere eseguita con un oggetto con dimensioni specificate (a differenza degli elementi frame in cui il layout è specificato dalla pagina frameset o dalla pagina che ospita l'iframe), quindi il layout dipende da le dimensioni dell'immagine caricata; almeno una pagina Web può verificare se è possibile caricare un URL immagine, che a volte può indicare se un utente è registrato su un sito Web, ad esempio.
Le regole per caricare script e fogli di stile sono speciali; questo è un buco nella politica che è utile per l'interfaccia con altri domini: uno script caricato dal dominio che fornisce il servizio può impostare alcune variabili per memorizzare il risultato di un calcolo. Questo modo molto sporco di effettuare chiamate di procedura remota è chiamato "JSONP".
E poi, ci sono canali laterali per misurare il tempo di caricamento delle risorse, una pagina non ha il diritto di vedere o misurare ...