2012-01-13 14 views
11

Utilizziamo URLReferrer e un codice trasmesso sulla stringa di query per produrre video online in modo che solo i nostri clienti a pagamento possano collegarsi alla nostra pagina di riproduzione video. Questo sistema ha funzionato bene per qualche tempo. So che il referrer URL può essere falsificato, ma chi potrebbe dire ai propri clienti di fare una cosa del genere per accedere a un video? Ha funzionato bene per noi.URLReferrer è nullo quando la pagina è HTTPS

Tuttavia, oggi mi è stato chiesto di qualcuno per cui non ha funzionato. URLReferrer è nullo e il loro sito è HTTPS. Ho letto alcune letture online e ho l'impressione che non ci sia modo di accedere al referrer URL quando la pagina sorgente è https. È corretto ? Se avessi fatto una versione https del nostro sito, lo risolverebbe? O c'è qualche altro modo per aggirare questo?

Grazie

risposta

13

La vostra ricerca online è corretta. Il motivo principale per cui non si imposta un'intestazione Referrer HTTP o equivalente è che questo potrebbe essere un problema di sicurezza. Il referrer contiene "da dove vieni", questa è un'informazione privata, e non dovrebbe essere esposta agli altri, a cosa serve altrimenti avere un sito sicuro se tutti possono rintracciare dove sei stato?

Quindi: non è possibile ottenere il referrer se il referrer è crittografato (con SSL o altro).


Aggiornamento: ecco cosa il HTTP specification says about coming from a secure site:

Clienti NON DOVREBBE includere un campo di intestazione Referer in un richiesta (non custodito) HTTP se la pagina di riferimento è stato trasferito con un protocollo sicuro.

Come avrete intuito, non c'è modo di aggirare questa restrizione. La tua unica opzione è usare un modello di verifica diverso. Uno di questi metodi fornisce agli utenti una chiave e richiede loro di inviarli come parametro con la richiesta. Si possono pensare a molti altri metodi.

+0

Grazie - il problema con la chiave è semplicemente che qualcuno potrebbe quindi copiare il link dalla propria pagina e usarlo, questo è quello che stiamo cercando di evitare. Poiché si tratta di un video, la soluzione più ovvia è consentire solo a loro di incorporare il video nella propria pagina e non collegarsi alla nostra pagina di riproduzione. – cgraus

+0

Già +1, solo per essere pignoli, stai citando le specifiche HTTP, non le [specifiche HTTPS] (http://tools.ietf.org/html/rfc2818) ;-) – Bruno

+0

@Bruno: tu ' ho ragione, non stavo prestando abbastanza attenzione. Fisso. – Abel

Problemi correlati