Why is this considered acceptable?
Non è considerato accettabile da tutti. È uno scarso compromesso tra privacy e utilità che viene visto da molti come un errore storico.
In other words, why isn't the Referer header subject to a cross-domain policy?
Referer
precede l'introduzione di JavaScript da parte di Netscape e lo stesso criterio di origine fornito con esso. Il web era un posto molto diverso allora, prevalentemente documenti statici pubblici e poca interazione. In questo ambiente c'era poca prospettiva di un URL contenente qualcosa di privato, e sembrava utile lasciare che gli autori del web sapessero esattamente quali documenti erano collegati ai loro, nello spirito di citazione aperta.
Anche in questo caso significativamente non c'erano i cookie. Quindi se il tuo browser ha detto al sito A che sei venuto dal sito B, c'era molto poco che il sito A potesse fare con quelle informazioni. Non è stato possibile individuare un cookie precedentemente piantato per legare le informazioni del referente con qualsiasi altra cosa che sapeva di ciò che avevi fatto in passato, e certamente non poteva permettere che i cookie di terze parti diffondessero tali informazioni per generare una croce a lungo termine -profilo di tracciamento del sito come fanno i Googles di oggi.
Solo quando il set di funzionalità della moderna "webapp" si è riunito, compresi script, cookie e frame, è risultato evidente che Referer
era la cosa sbagliata da fare. Se fosse progettato oggi avremmo al massimo qualcosa di simile alla moderna intestazione Origin
di CORS, che ha il compromesso leggermente più incline alla privacy di un nome di sito ma nessun percorso / query.
Tuttavia, un numero sufficiente di siti Web (incautamente) si basa su Referer
che un singolo produttore di browser non può disabilitare facilmente la funzionalità senza influire negativamente sulla compatibilità per i propri utenti. Ciò rende molto difficile da risolvere.