Hoy hablaremos sobre los enlaces antirrobo de Java. Es inútil hablar más sobre ello, y usaremos directamente los casos de aplicación.
La herramienta utilizada aquí es el software de informes FineRePort, que está equipado con un sistema de toma de decisiones (un sistema de visualización de front-end web, que se utiliza principalmente para el control de permisos), y puede usar Java Anti-thtt Link para lograr los permisos de página.
Al ingresar directamente la URL del informe en el navegador, su archivo de encabezado está vacío. Por lo tanto, puede hacer dos juicios al acceder: si el archivo de encabezado está vacío y a qué página saltar, y si no coincide, simplemente salte a la página de error.
¿Qué es un referente?
El referente aquí se refiere a un campo en el encabezado HTTP, también conocida como la dirección fuente HTTP (referente HTTP), que se utiliza para indicar dónde vincular a la página web actual, y el formato es URL. En otras palabras, la página web del encabezado de referente HTTP puede verificar de dónde vienen los visitantes, que a menudo se usa para tratar con solicitudes falsas de sitios cruzados.
¿Qué es un referente vacío y cuándo aparecerá un referente vacío?
Primero, definimos el referente vacío ya que el contenido del encabezado de referente está vacío, o una solicitud HTTP no contiene el encabezado de referente en absoluto.
Entonces, ¿cuándo no incluirán las solicitudes HTTP el campo de referente? Según la definición de referente, su función es indicar dónde está vinculada una solicitud. Cuando una solicitud no es generada por un contacto de enlace, naturalmente no es necesario especificar la fuente de enlace de la solicitud.
Por ejemplo, si ingresa directamente la dirección de URL de un recurso en la barra de direcciones del navegador, entonces esta solicitud no incluirá el campo de referencia, porque esta es una solicitud HTTP "generada fuera de la nada" y no está vinculada desde un lugar.
En la configuración de la cadena antirrobo, ¿cuál es la diferencia entre permitir el referente vacío y no permitir el referente vacío?
En la cadena antirrobo, si se permite un referente vacío, es posible acceder directamente a la URL de recursos a través de la barra de direcciones del navegador;
Sin embargo, si no está permitido el referente vacío, el acceso directo a través del navegador también está prohibido.
Pasos de operación
1. Agregar archivo de clase
Escriba un archivo de clase para determinar si el archivo de encabezado está vacío, el código es el siguiente:
paquete com.fr.test; import java.io.ioException; import java.io.printwriter; import javax.servlet.filter; import javax.servlet.filterchain; import javax.servlet.filterConfig; import javax.servlet.servletException; import javax.servlet.servletReCest; javax.servlet.servletResponse; import javax.servlet.http.httpservletRequest; import javax.servlet.http.htttpservletResponse; import javax.servlet.http.httpsession; public class dodo Dodo implementa filtros {public void destruir () {// toDo-generated DOFILTER (solicitud de servletRequest, respuesta de servicio de servicio, cadena de filtro de filtro) lanza IOException, servletException {httpservletRequest req = (httpservletrequest) solicitud; HttpservletResponse resp = (httpservletResponse) respuesta; String referer = req.getheader ("referente"); // La dirección IP a continuación es una solicitud de página normal si (NULL! = Referente && (referer.trim (). Startswith ("http: // localhost: 8033") || referer.trim (). Startswith ("http://www.finerePorthelp.com/test/hello.html")))) {System.out.out. ("normal. solicitar "+referente); cadena.dofilter (req, resp); // Lo siguiente es saltar cuando una solicitud para la página no es normal} else {System.out.println ("Chain Steal"+Referer); req.getRequestDispatcher ("/ldaplogin.jsp"). Forward (req, resp); }} public void init (FilterConfig Arg0) lanza ServletException {// TODO Auto Generado Método STUB}}Compile dodo.java en el archivo de clase y colóquelo en el directorio %Tomcat_Home %/WebrePort/Web-INF/Classes/Com/FR/Test Directory.
2. Modifique el archivo web.xml
Abra el archivo Web.xml en %Tomcat_Home %/WebApps/WebrePort/Web-INF, configure un filtro de filtro y ejecute el filtrado cuando aparezca informeserver. El código es el siguiente:
<filter> <filter-name> AuthFilter </filter-name> <filter-class> com.fr.test.dodo </filter-class> </filtre> <filter-mapping> <filter-name> authfilter </filtre-name> <url-pattern>/informesserver </url-pattern> </filter-mapping>>
Se puede hacer en dos pasos. Si es un enlace robado, saltará a la página de error de Ldaplogin mencionada anteriormente. Aquí no hay una página de Ldaploign, por lo que saltará directamente a 404. Si desea implementar permisos de datos, puede usar inyección de sesión o inyección de sesión.
Prueba de efectividad
Preparar dos archivos HTML
Suponga que Hello.html es la URL correcta
<html> <body> <p> test </p> <a href = "http: // localhost: 8033/webrePort/informesserver? Reportlet = demo%2fnewchart%2fothers%2flogarithmic_axis.cpt & op = Write"> anti-anti-sttft Test </a> </body> <html>
Suponga que Steel.html es la URL para robar enlaces
<html> <body> <p> test, dirección de enlace incorrecta </p> <a href = "http: // localhost: 8033/webreport/informesserver? Reportlet = demo%2fnewchart%2fots%2flogarithmic_axis.cpt & op = write"> anti-ftft Test </a> </body> </html>
Situación 1
Salta a través de hola.html, el enlace de salto es correcto, es decir, el referente no está vacío y correcto
Situación 2
Saltar a través de Steel.html, Jump Link es incorrecto, es decir, el referente no está vacío y Error
Situación tres
Acceso directo a la dirección de URL, es decir, el referente está vacío
El ejemplo anterior de la aplicación de la cadena antirrobo Java en el informe (recomendado) es todo el contenido que comparto con usted. Espero que pueda darle una referencia y espero que pueda apoyar más a Wulin.com.