¿Le entendí correctamente que si encontré su sitio en Google y abrí el enlace, entonces ingresó 'google.com'?
Romano
Respuestas:
310
Está disponible en el encabezado HTTPreferer . Puede obtenerlo en un servlet de la siguiente manera:
String referrer = request.getHeader("referer");// Yes, with the legendary misspelling.
Sin embargo, debe darse cuenta de que se trata de un valor controlado por el cliente y, por lo tanto, puede suplantarse a algo completamente diferente o incluso eliminarse. Por lo tanto, sea cual sea el valor que devuelva, no debe usarlo para ningún proceso comercial crítico en el back-end, sino solo para el control de la presentación (por ejemplo, ocultar / mostrar / cambiar ciertas partes de diseño puro) y / o estadísticas.
Para los interesados, los antecedentes sobre la falta de ortografía se pueden encontrar en Wikipedia .
¿Hay alguna diferencia entre "árbitro" y "árbitro"?
ante.sabo
77
@ante: no, la búsqueda del encabezado no distingue entre mayúsculas y minúsculas.
BalusC
2
Tenga en cuenta que cualquier encabezado puede ser null.
rds
@BalusC ¿Qué sucede si necesito las dos URL anteriores? Es posible ?
Angel Cuenca
26
En realidad es:
request.getHeader("Referer")o incluso mejor, y para estar 100% seguro
request.getHeader(HttpHeaders.REFERER), dónde está HttpHeaderscom.google.common.net.HttpHeaders
Me gustaría añadir algunos detalles más sobre aspecto de seguridad de árbitro cabecera en contraste con la respuesta aceptada. En Abrir Proyecto Seguridad de Aplicaciones Web ( OWASP ), hojas de trucos bajo solicitud entre sitios Falsificación Hoja (CSRF) Prevención de trucos que menciona acerca de la importancia árbitro cabecera.
Más importante aún para esta verificación recomendada del mismo origen, JavaScript no puede establecer una cantidad de encabezados de solicitud HTTP porque están en la lista de encabezados 'prohibidos'. Solo los navegadores mismos pueden establecer valores para estos encabezados, haciéndolos más confiables porque ni siquiera una vulnerabilidad XSS puede usarse para modificarlos.
La verificación de Origen de origen recomendada aquí se basa en tres de estos encabezados protegidos: Origen, Referer y Host, por lo que es una defensa CSRF bastante fuerte por sí sola.
Puede consultar la lista de encabezados prohibidos aquí . El agente de usuario (es decir, el navegador) tiene el control total sobre estos encabezados, no el usuario.
Respuestas:
Está disponible en el encabezado HTTP
referer
. Puede obtenerlo en un servlet de la siguiente manera:Sin embargo, debe darse cuenta de que se trata de un valor controlado por el cliente y, por lo tanto, puede suplantarse a algo completamente diferente o incluso eliminarse. Por lo tanto, sea cual sea el valor que devuelva, no debe usarlo para ningún proceso comercial crítico en el back-end, sino solo para el control de la presentación (por ejemplo, ocultar / mostrar / cambiar ciertas partes de diseño puro) y / o estadísticas.
Para los interesados, los antecedentes sobre la falta de ortografía se pueden encontrar en Wikipedia .
fuente
null
.En realidad es:
request.getHeader("Referer")
o incluso mejor, y para estar 100% segurorequest.getHeader(HttpHeaders.REFERER)
, dónde está HttpHeaderscom.google.common.net.HttpHeaders
fuente
getHeader(String name)
(presupuesto):"The header name is case insensitive."
org.apache.http.HttpHeaders
Las URL se pasan en la solicitud:
request.getRequestURL()
.Si te refieres a otros sitios que están vinculados a usted? Desea capturar el Referidor HTTP, lo que puede hacer llamando a:
fuente
Como todos han mencionado, es
Me gustaría añadir algunos detalles más sobre aspecto de seguridad de árbitro cabecera en contraste con la respuesta aceptada. En Abrir Proyecto Seguridad de Aplicaciones Web ( OWASP ), hojas de trucos bajo solicitud entre sitios Falsificación Hoja (CSRF) Prevención de trucos que menciona acerca de la importancia árbitro cabecera.
Puede consultar la lista de encabezados prohibidos aquí . El agente de usuario (es decir, el navegador) tiene el control total sobre estos encabezados, no el usuario.
fuente