假HTTP获取请求

时间:2010-07-09 08:06:07

标签: java http

我注意到某些网站允许每个IP的命中率有限 所以我可以编程方式让他们觉得请求不是来自同一个IP,

我不太确定abot HTTP数据包,但我们可以在标题或某处指定它以使它们变得傻瓜

这是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;
    }

7 个答案:

答案 0 :(得分:11)

我猜测过滤器是在IP数据包级别而不是在更高级别的HTTP级别应用的。在这种情况下,是和否

是的 - 技术上可以欺骗您的IP地址,以便IP数据包看起来像是来自其他地方。

不 - 因为它不太可能有用。如果您欺骗TCP数据包上的“发件人”地址,那么您连接的计算机的任何回复都将在尝试路由到欺骗性IP地址时丢失。你什么也得不回来。

也就是说,您甚至无法完成TCP Three-Way-Handshake。在该过程完成之前,您甚至无法发送任何连接 - 因为甚至没有连接,开始。 HTTP通过TCP运行,因此除非您完成握手(需要有效的'来自'IP地址),否则您无法使用它。


一个老技巧是使用一种叫做“源路由”的东西;其中TCP数据包包含有关如何路由信息的信息。这是用于“在白天”的诊断用途。您可以将自己置于指定的路由中,然后只需在数据包到达您的时候停止它们并再次使用源路由信息进行回复。

但是这种技术根本不起作用,因为现在几乎互联网上的每一个路由器都只丢弃了源路由数据包,因为没有合法的需求 - 并且有很多潜力肆虐。

答案 1 :(得分:5)

首先,我希望任何试图进行源限制的网站都不会信任某些任意标头。数据包说明了响应必须回到的地方 - 我希望他们能够根据这一点进行节制。

其次,如果一个网站不希望你反复点击它们,你不觉得你试图规避它是不礼貌的吗?如果我是网站所有者并且我注意到有人试图这样做,我可能会尽可能地禁止它们。

答案 2 :(得分:2)

不,只使用Http标头更改就不可能欺骗这些系统。实现目标的可能方法是使用Tor network

答案 3 :(得分:0)

不,欺骗您的IP不是您可以在HTTP标头中执行的操作。

首先,我建议无论你试图绕过什么限制 - 都不要打扰。这是有原因的,你可能会破坏服务的某些使用条款。

其次,如果你绝对坚定,我会说你能够让它看起来像是来自不同IP的请求的唯一方法是实际上让它来自不同的IP - 即,通过使用一堆代理。

答案 4 :(得分:0)

不,如果使用可欺骗的标头实现它,那么基于源IP执行速率控制的网站会非常天真。

答案 5 :(得分:0)

不,除非你使用某种代理,否则你不能以进步方式完成。

通常,IP检测来自IP级别,而不是来自HTTP标头。如果有人通过标题检测到IP,那么......这是错误的。

答案 6 :(得分:0)

“正确”的方式,如果我可以将该术语用于不健康的事情,使网站认为不同的IP提出请求就是使用代理连接。该站点可能实际上正在检查源IP地址,这是 HTTP请求的属性。因此,响应将传递给您的“其他”IP。您应该查看ssh -Dprivoxy或其他软件,以便通过远程中介将您的所有流量汇集到网站上。