Il referer viene passato da HTTPS a HTTP in alcuni casi ... Come?


17

In teoria i browser non trasmettono informazioni sui referer da siti HTTPS a HTTP. E nella mia esperienza questo è sempre stato vero. Ma ho appena trovato un'eccezione e voglio capire perché funziona in modo da poterlo usare anche io.

Cerca "qual è il mio referer" su https://www.google.ca/
ad esempio: https://www.google.ca/search?q=what+is+my+referer

Ci sono alcuni siti che mostreranno referer. Sembrano tutti "funzionare" quando non dovrebbero. Ad esempio, fai clic su www.whatismyreferer.com. Ottengo:

 Your referer:
 https://www.google.ca/

Si noti che a volte, raramente, ottengo "nessun referer" come risultato. Torna indietro e fai di nuovo clic sul link e "funzionerà" la volta successiva.

Questo non dovrebbe succedere. www.whatismyreferer.com è un sito non HTTPS. L'intestazione del referer non deve essere passata, ma lo è.

Cosa sta succedendo qui e come posso fare lo stesso dal mio sito HTTPS ai siti HTTP a cui sto collegando?


1
Dovrei notare che sto usando Chrome su Windows, se questo fa la differenza (es: se altre persone stanno vedendo risultati diversi su browser / sistemi operativi diversi)
Ravisorg,

Questo comportamento non è più vero.
Flimm,

@ravisorg, non dovrebbe essere pubblicato su S / O?
Pacerier,

Google ora restituisce un collegamento HTTPS, quindi il test non è più valido :-(
Silas S. Brown,

Risposte:



4

Questo è il comportamento standard.

dice https://tools.ietf.org/html/rfc2616#section-15.1.3

I client NON DOVREBBERO includere un campo di intestazione Referer in una richiesta HTTP (non sicura) se la pagina di riferimento è stata trasferita con un protocollo sicuro.

quindi se il tuo client lo sta facendo, sta violando lo standard.

poi di nuovo, google è lo standard e possono fare quello che vogliono :-)


1
"Dovrebbe" significa facoltativo vero?
Pacerier,

sì, la penso così, facoltativo.
johnshen64,

4
Dal momento che è facoltativo, perché dici che sta violando lo standard?
Pacerier,

1
Ormai 2616 è obsoleto. 7231, Sezione 5.5.2, dice "Un agente utente NON DEVE inviare un campo di intestazione Referer in una richiesta HTTP non protetta se la pagina di riferimento è stata ricevuta con un protocollo sicuro." Tuttavia, non specifica cosa dovrebbero fare gli agenti per le richieste HTTP protette.
Peter,

1

Questo sembra essere qualcosa che sta facendo il javascript sulla pagina di Google. Non lo vedo in Firefox con noscript abilitato e smetto di vederlo in Chrome su Windows se disabilito javascript. Non so che cosa specificamente non ho scavato più in profondità di quello.


No, non è correlato a JavaScript (ci ho pensato e verificato prima di chiedere). Sembra che sia un nuovo tag <meta> che Chrome sta seguendo.
Ravisorg,

Disabilitare javascript in modo affidabile impedisce al referrer di funzionare qui. Non lo so. Forse qui è coinvolta più di una cosa.
Etan Reisner,

È molto interessante - ho intenzione di sperimentare di più con quello. Grazie per il feedback!
Ravisorg,

0

<meta> Il nome dell'attributo dell'etichetta ha nuove regole di referrer, che controlla il contenuto dell'intestazione HTTP di riferimento HTTP allegata a qualsiasi richiesta inviata da questo documento.

Per ulteriori informazioni, consultare qui: Informativa sui referenti RFC


È la stessa della risposta già accettata ?!
DocRoot,

-2

È perché quando si fa clic sul collegamento, si viene reindirizzati da https://www.google .... a http://www.google ... quindi si viene reindirizzati a www.whatismyreferer.com

E come hai detto, tra i siti Web http viene trasmesso il referer.

Puoi verificarlo con un'estensione di Firefox


2
Stai indovinando o lo stai basando sui fatti? Perché non vedo che ciò accada da parte mia. Facendo clic sul collegamento, si accede a un reindirizzamento HTTPS su google.ca e quindi al dominio finale. Non ho mai colpito un URL non https fino a quando non raggiungo (ad esempio) www.whatismyreferer.com. Si noti inoltre che il referer specifica in particolare httpS://www.google.ca , non http.
Ravisorg,

Sì, questa risposta sembra essere errata.
Ceejayoz,

Ecco il dump delle intestazioni http: pastebin.com/Y1HJyJ87 Ho appena rimosso il download delle risorse (come google suggest & altre cose ajax) e i dati relativi ai cookie. Ma devo ammettere che quando ho provato più volte, google si è comportato diversamente ... A volte usando solo https, quindi non permettendo al sito web di mostrarmi il mio referer. Basta provare da soli
user2299634
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.