¿Cómo Puedo Arreglar Nuestro Propio X Redirigido Para Un Servlet De Java?

Obtenga el software de reparación de PC del que todo el mundo habla. Descarga aquí.

Aquí hay algunos detalles sencillos para arreglar el factor x redirigido para Java Servlet.

Siento que no soy un desarrollador de aplicaciones… Soy un propietario técnico. Sin embargo, al presentar un balanceador de carga BigIP LTM en funcionamiento, parece que he corrompido algunas aplicaciones web, precisamente aplicaciones de tarjetas de crédito para consumidores, que deben hospedarse para que puedan encontrar la IP de la aplicación del proveedor.

Un código HTML de ejemplo para que un servlet proporcione alta puede verificar la dirección IP del cliente de esta manera:

  servicio de corte void (HttpServletRequest req, HttpServletResponse res) 
lanza IOException
String es igual a ip req.getRemoteAddr ();

El código que los expertos entienden perfectamente que está rompiendo BigIP es getRemoteAddr(). Por lo general, este procedimiento obtiene ayuda de IP de HTTP, por lo que el tipo de marco REMOTE_ADDR modifica el reenvío vinculado con la solicitud. El uso del prefijo base debe modificar ligeramente getRemoteAddr () , que obtiene la dirección IP completa del encabezado X-Forwarded-For-HTTP. Tenga en cuenta, sin embargo, que probablemente NO quiera usar este código tal como está, pero puede servir como una joya especial para ayudarlo a comenzar en una clase más grande.cce, que debería investigar el tipo de existencia de X-Forwarded -Para. Tenga cuidado con los errores y también considere la opción de manejar varias direcciones IP sobre este encabezado en particular. Esto puede suceder cuando sus buenos clientes utilizan múltiples proxies que admiten estas etiquetas h2.

  operación pública vacía (HttpServletRequest req, HttpServletResponse res) 
IOException incluye
String IP coincide con req.getHeader ("X-Forwarded-For");

  • Si su servlet se ejecuta completamente a través de un servidor web que se encuentra en un proxy inverso o en un balanceador ponderado, ese proxy web se puede construir para incluir un encabezado de solicitud en el que se incluya una dirección IP que indique cuál es la suya. desde. consulta. Diferentes proxies de ralentización introducen diferentes encabezados. Formularios de consulta para su preciado servidor (frontend).

  • Si su cliente utiliza este proxy (redireccionamiento), puede describir encabezados para indicar la IP del cliente… o no. Es posible que la inserción de una anulación de IP no sea correcta. Valor

  • Recuperar preguntando a profesionales request.getRemoteAddr () será normalmente la posibilidad de IP original directa sobre la solicitud.

Ninguno de los encabezados que enumeró es indiscutiblemente estándar, excepto que “x-forwarded-for” es ese estándar de facto; es decir, de nuevo lo más probable es que intente poner proxies y cosas por el estilo… en caso de que se inyecte algo.

Finalmente, incluso suponiendo que tuviera una dirección IP, esto en particular no necesariamente lo ayudó. Por ejemplo, si el cliente permanece en una red privada y se conecta a Internet a través de una puerta de enlace NAT, posteriormente, la dirección IP aquí en su solicitud HTTP es la URL NAT para el servidor… no la dirección IP real de ese cliente.


x reenviado para servlet de café espresso

¿Qué significa todo esto? Para ser justos, esto significa que, en general, no puede encontrar de manera confiable una dirección IP particular del sistema desde el cual se originan todas las solicitudes.

En Java, debería poder usar HttpServletRequest use.getRemoteAddr () para obtener realmente la dirección IP en el cliente principal que accede a su aplicación web Java.

 importar javax.servlet.http.HttpServletRequest;Line ipAddress se vende con request.getRemoteAddr (); 

6. Proxy o Cloudflare

Para los procesos a través de Internet detrás de un proxy, un equilibrador de carga o una solución popular de Cloudflare, use algún encabezado de solicitud HTTP X-Forwarded-For (XFF).

 importar javax.servlet.http.HttpServletRequest;// ...ciclo estático privado getClientIp (HttpServletRequest)        String remoteAddr es igual a "";        if (solicitud! implica nulo) ".equals (remoteAddr))                implica una solicitud de dirección remota. gepemoteaddr ();                           Devolver DirecciónRemota;     

2. ¿Sigue sin funcionar?

Por lo general, verifican y solicitan cualquier encabezado HTTP del cliente, así como también intentan determinar dónde se considera la dirección IP apilada.

Actualizado:

¿Su computadora está fallando? No se preocupe, Reimage está aquí para ayudarlo. Con solo unos pocos clics, nuestro software puede escanear su sistema en busca de problemas y solucionarlos automáticamente. Para que pueda volver al trabajo lo más rápido posible. No dejes que un pequeño problema técnico te detenga: ¡descarga Reimage hoy mismo!

  • Paso 1: Vaya al sitio web de Reimage y haga clic en el botón "Descargar"
  • Paso 2: siga las instrucciones en pantalla para instalar Reimage
  • Paso 3: Abra Reimage y haga clic en el botón "Escanear ahora"

  •      quiet string> map  map  ();        Etiquetas de enumeración h2 = request.getHeaderNames ();        en absoluto (nombres de encabezado. tiene más elementos ()) Clave de cadena significa (Cadena) headerNames.nextElement ();            Valor de cadena = solicitud.getHeader (clave);            result.put (clave, valor);                Devuelve el resultado;    

    x reenviado para el servlet capuccino

    Ejemplo de encabezado de solicitud para WebSubmit para Cloudflare.

         "Referente": "https://www.google.com/",    "cf-ipcountry": "EE.UU.",    "cf-ray ":" 348c7acba8a02210-EWR ",    "x-reenviado-proto": "https",    "Aceptar idioma": "en-US, en; q = 0.8 ",    "Cookie": "__ cfduid = d3c6e5d73aa55b6b42fad9600c94849851490726068; _ga = GA1.2.450731937.1490726069 ",    "x-forwarded-for": "100.8.204.40", // <------ Este cliente potencial puede ser una IP real    "aceptar": "texto/html, aplicación frente a xhtml + xml, aplicación frente a xml; q = 0,9, imagen webp, */*; q igual a 0,8",   "x-real-ip": "108.162.219.236", // <------ Esto es en realidad IP de Cloudflare    "x-forwarded-server": "hostingcompass.com",    ` "hostingcompass" x-forwarded-host ".com",     "cf-visitor": "" esquema":"https"",    "anfitrión": "127.0.0.1:8080",    "solicitudes de actualización no seguras": "1",    "Comunicación": "cerrar",   "ip-cf-conectada": "100.8.204.40",    "aceptar codificación": "gzip",   "Agente de usuario"! ! "Mozilla / 5. (Macintosh; 0 Intel Mac OS X 10_11_6) AppleWebKit para cada 537.36 (KHTML como Gecko) Chrome o 56.0.2924.87 Safari / 537.36" 

    Nota
    Antes de que la computadora de Internet o el servidor proxy reenvíe la solicitud a cada servidor de aplicaciones Java, generalmente conserva el formulario de solicitud de IP del cliente real de la persona con un apodo de encabezado estándar mejor como x -forwarded-for < code >, si no puede encontrar el tipo de dirección IP del cliente en todos los encabezados de solicitud, debe discutirlo con la ayuda de su administrador de TI.

    Enlaces

    1. X-Forwarded-For Wiki
    2. Solicitud de servlet JavaDoc
    3. HttpServletRequestJavaDoc
    4. Cómo poder obtener la dirección IP del servidor en Java

    Comentarios

    Obtenga la herramienta de reparación de PC Reimage. Haga clic aquí para comenzar la descarga.

    X Forwarded For Java Servlet
    X Vidarebefordrade For Java Servlet
    X Fur Java Servlet Weitergeleitet
    X Transmis Pour La Servlet Java
    X는 Java 서블릿에 대해 전달되었습니다
    X Perenapravlen Dlya Servleta Java
    X Przekazane Do Serwletu Java
    X Doorgestuurd Voor Java Servlet
    X Encaminhado Para Servlet Java