Respostas:
Está disponível no cabeçalho HTTPreferer
. Você pode obtê-lo em um servlet da seguinte maneira:
String referrer = request.getHeader("referer"); // Yes, with the legendary misspelling.
Você, no entanto, precisa perceber que esse é um valor controlado pelo cliente e, portanto, pode ser falsificado para algo totalmente diferente ou mesmo removido. Portanto, qualquer que seja o valor que ele retorne, você não deve usá-lo para nenhum processo crítico de negócios no back-end, mas apenas para o controle da apresentação (por exemplo, ocultar / mostrar / alterar certas partes do layout) e / ou estatísticas.
Para os interessados, é possível encontrar informações sobre o erro ortográfico na Wikipedia .
null
.
Na verdade, é:
request.getHeader("Referer")
ou melhor ainda, e para ter 100% de certeza
request.getHeader(HttpHeaders.REFERER)
, onde o HttpHeaders estácom.google.common.net.HttpHeaders
getHeader(String name)
(citação):"The header name is case insensitive."
org.apache.http.HttpHeaders
Como todos mencionaram, é
request.getHeader("referer");
Gostaria de adicionar mais alguns detalhes sobre o aspecto de segurança do cabeçalho do referenciador, em contraste com a resposta aceita. Nas folhas de dicas do Open Web Application Security Project ( OWASP ), em Folha de dicas de prevenção de falsificação de solicitação entre sites (CSRF), ele menciona a importância do cabeçalho do referenciador .
Mais importante para esta verificação de mesma origem recomendada, vários cabeçalhos de solicitação HTTP não podem ser definidos pelo JavaScript, porque estão na lista de cabeçalhos 'proibidos'. Somente os próprios navegadores podem definir valores para esses cabeçalhos, tornando-os mais confiáveis, porque nem mesmo uma vulnerabilidade XSS pode ser usada para modificá-los.
A verificação da Origem de origem recomendada aqui baseia-se em três desses cabeçalhos protegidos: Origem, Referenciador e Host, tornando-se uma defesa CSRF bastante forte por si só.
Você pode consultar a lista de cabeçalhos proibidos aqui . O agente do usuário (ou seja, navegador) tem controle total sobre esses cabeçalhos e não sobre o usuário.