2010-07-09 18 views
8

he notado ciertos sitios que permite éxito limitado por IP así puedo programáticamente hacerles sentir que las solicitudes no provienen de la misma IP,falso peticiones HTTP GET

así que no soy muy seguro de paquetes Abot HTTP, pero podemos especificarlo en la cabecera o en algún lugar para que se engañe

aquí es el código de solicitud GET

public static String sendGetRequest(String endpoint, String requestParameters) { 
     String result = null; 
     if (endpoint.startsWith("http://")) { 
// Send a GET request to the servlet 
      try { 
// Construct data 
       StringBuffer data = new StringBuffer(); 

// Send data 
       String urlStr = endpoint; 
       if (requestParameters != null && requestParameters.length() > 0) { 
        urlStr += "?" + requestParameters; 
       } 
       URL url = new URL(urlStr); 
       URLConnection conn = url.openConnection(); 

// Get the response 
       BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream())); 
       StringBuffer sb = new StringBuffer(); 
       String line; 
       while ((line = rd.readLine()) != null) { 
        sb.append(line); 
       } 
       rd.close(); 
       result = sb.toString(); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
     return result; 
    } 

Respuesta

11

Supongo que el filtro se está aplicando en el nivel de paquete IP en lugar de en el nivel HTTP de nivel superior. En este caso Sí y No.

Sí, técnicamente es posible falsificar su dirección IP para que los paquetes IP parezcan haber venido de otro lugar.

No, ya que es poco probable que sea útil. Si falsifica la dirección "de" en los paquetes TCP, entonces las respuestas de la máquina a la que se está conectando se perderán cuando intenten enrutar a la dirección IP falsificada. No recuperarás nada.

Es decir, ni siquiera podrá completar el TCP Three-Way-Handshake. Hasta que se complete ese proceso, no puede ni siquiera enviar nada por la conexión, porque ni siquiera hay una conexión, para empezar. El HTTP se ejecuta sobre TCP, por lo tanto, a menos que complete el protocolo de enlace (que requiere una dirección IP 'de' válida), no puede hacer uso de esto.


Un viejo truco era usar algo llamado "Source Routing"; donde los paquetes TCP incluían información sobre cómo enrutar la información. Esto fue para el uso de diagnóstico de vuelta "en el día". Podría ponerse en la ruta designada y luego detener los paquetes cuando lleguen y responderlos, nuevamente con la información de enrutamiento de origen.

Pero esta técnica no funciona en absoluto más, porque casi todos los router en Internet en estos días simplemente descarta los paquetes encaminado por la fuente, ya que no hay necesidad legítima de ellos - y un montón de caos potencial para ser wreaked .

5

en primer lugar, yo espero que todos los sitios que están tratando de hacer estrangulación de origen no están va a confiar en algún encabezado arbitrario. El paquete dice a dónde tiene que regresar la respuesta, espero que se aceleren en función de eso.

En segundo lugar, si un sitio no quiere que los golpee repetidamente, ¿no cree que es grosero de su parte intentar eludirlo? Si fuera propietario de un sitio y notara que alguien intenta hacerlo, probablemente lo prohibiría si fuera posible.

+0

Estoy planeando esto para asegurar mi propio sitio. y me puede decir cuáles son los parámetros que necesito verificar en –

+0

@abc: Eso dependerá completamente de cómo se implemente su sitio, pero espero que haya alguna parte de la API que le proporcionó la dirección API de origen . Puede terminar siendo un proxy, pero eso debería ser lo suficientemente bueno en muchos casos. –

0

No, falsificar su IP no es algo que pueda hacer en sus encabezados HTTP.

En primer lugar, te sugiero que sea cual sea el límite que estés tratando de evitar, no te molestes. Está ahí por una razón, y probablemente estarás rompiendo los términos de uso de alguien para un servicio.

En segundo lugar, si está absolutamente decidido, diría que la única forma en que podría hacer que pareciera que la solicitud provenía de una dirección IP diferente sería hacer que provenga de una IP diferente. es decir, mediante el uso de un grupo de proxies.

+0

Estoy planeando esto para asegurar mi propio sitio. y me puede decir cuáles son los parámetros que necesito verificar en –

0

No, los sitios que realizan control de tasa basado en IP de origen serían muy ingenuos si lo implementaran utilizando encabezados falsificables.

0

No, no puede hacerlo de forma progmática, a menos que esté utilizando algún tipo de proxy.

Normalmente, la detección de IP proviene del nivel de IP, no del encabezado HTTP. Si alguien está detectando IP a través del encabezado, bueno ... está mal.

2

No, no es posible engañar a tales sistemas usando solo el cambio de encabezado Http. Una posible forma de lograr su objetivo sería usar Tor network.

0

La forma "correcta", si puedo usar ese término para algo insano, para hacer que los sitios piensen que una IP diferente ha hecho una solicitud es usar una conexión por proxy. El sitio probablemente esté verificando la dirección IP de origen, que es , no, una propiedad de la solicitud HTTP. Entonces, la respuesta será entregada a su "otra" IP. Debería mirar ssh -D o privoxy, u otra pieza de software para canalizar todo su tráfico con el sitio a través de un intermediario remoto.

Cuestiones relacionadas