Risposte:
E 'disponibile in HTTP referer
nell'intestazione . Puoi ottenerlo in un servlet come segue:
String referrer = request.getHeader("referer"); // Yes, with the legendary misspelling.
Tuttavia, è necessario rendersi conto che questo è un valore controllato dal cliente e può quindi essere falsificato in qualcosa di completamente diverso o addirittura rimosso. Pertanto, qualunque sia il valore restituito, non è necessario utilizzarlo per alcun processo aziendale critico nel back-end, ma solo per il controllo della presentazione (ad esempio nascondere / mostrare / modificare determinate parti di layout puri) e / o statistiche.
Per gli interessati, informazioni di base sull'errore di ortografia sono disponibili su Wikipedia .
null
.
In realtà è:
request.getHeader("Referer")
o anche meglio, e per essere sicuro al 100%
request.getHeader(HttpHeaders.REFERER)
, dove si trova HttpHeaderscom.google.common.net.HttpHeaders
getHeader(String name)
(citazione):"The header name is case insensitive."
org.apache.http.HttpHeaders
Come tutti hanno già detto
request.getHeader("referer");
Vorrei aggiungere ulteriori dettagli sull'aspetto della sicurezza dell'intestazione del referer in contrasto con la risposta accettata. Nei cheat sheet del progetto OWASP (Open Web Application Security Project ), sotto il cheat sheet Prevenzione richieste contraffatte (CSRF) menziona l'importanza dell'intestazione del referer .
Ancora più importante per questo controllo Same Origin consigliato, un numero di intestazioni di richiesta HTTP non può essere impostato da JavaScript perché si trovano nell'elenco delle intestazioni "vietate". Solo i browser stessi possono impostare valori per queste intestazioni, rendendole più affidabili perché nemmeno una vulnerabilità XSS può essere utilizzata per modificarle.
Il controllo dell'origine sorgente consigliato qui si basa su tre di queste intestazioni protette: Origin, Referer e Host, che la rendono una difesa CSRF piuttosto potente da sola.
Puoi fare riferimento all'elenco delle intestazioni vietate qui . L'agente utente (ovvero: browser) ha il pieno controllo su queste intestazioni e non sull'utente.