`

伪造Http请求IP地址

 
阅读更多
注意:伪造Http请求IP地址一般为非推荐使用手段

一般使用:简单投票网站重复投票,黑别人网站

在项目开发中(web项目),我负责的系统(简称PC),需要调其它系统接口,并且该系统需要获取客户端(浏览器访问端)的IP地址,给我愁死了,

正常流程:浏览器---访问PC系统----PC系统需要调第三方系统,此时默认情况下,PC发起的request请求IP地址是PC所在服务器的IP地址,而不是请求浏览器端的IP地址

所以,就想着是否能把request里的IP地址给修改了,因为在PC系统里是能获取到请求IP地址的,结果是修改不了

最后了解到:可以在http请求头里,追加一个头信息(名称:x-forwarded-for),它会位于原始IP地址之前,所以当第三方系统获取地址时,就获取到了真实的浏览器访问地址IP了

本代码以java为列:

X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。

httpPost.addHeader("x-forwarded-for",ip);

详细代码如下:

package com.sh.portal.framework.client.http;

import java.io.IOException;

import org.apache.commons.lang.StringUtils;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.message.BasicHeader;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Component;

import com.sh.portal.framework.client.RemoteServerArgs;
import com.sh.portal.framework.client.RemoteServerClient;
import com.sh.portal.framework.client.RemoteServerResponse;
import com.sh.portal.util.CommonUtils;


@Component
public class RemoteServerClientImpl implements RemoteServerClient {
    
    private static final String DEFAULT_ENCODE = "UTF-8";
    
    private static final String APPLICATION_JSON = "application/json";
    
    @Override
    public RemoteServerResponse post(RemoteServerArgs args) throws IOException {
        String ip = CommonUtils.getRequestIpAddress();
        // 创建HttpClientBuilder  
        HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
        
        // HttpClient
        CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
        // 请求参数
        StringEntity entity = new StringEntity(args.getRequestJson(), DEFAULT_ENCODE);
        entity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON));
        HttpPost httpPost = new HttpPost(args.getUrl());  
        httpPost.addHeader(HTTP.CONTENT_TYPE, APPLICATION_JSON);
        //此处区别PC终端类型
        httpPost.addHeader("typeFlg", "9");
        //此处增加浏览器端访问IP
        if(!ip.equals("")){
            httpPost.addHeader("x-forwarded-for",ip);
        }
        httpPost.setEntity(entity);
        httpPost.setConfig(RequestConfig.DEFAULT);
        
        HttpResponse httpResponse;  
        // post请求  
        httpResponse = closeableHttpClient.execute(httpPost);
        HttpEntity httpEntity = httpResponse.getEntity();
        RemoteServerResponse response;
        if (httpEntity != null) {
            response = new RemoteServerResponse(httpResponse.getStatusLine().getStatusCode(), 
                EntityUtils.toString(httpEntity, DEFAULT_ENCODE));
        } else {
            response = new RemoteServerResponse(httpResponse.getStatusLine().getStatusCode(), 
                    StringUtils.EMPTY);
        }
        //释放资源  
        closeableHttpClient.close();  
        return response;
    }

}


http://www.cnblogs.com/holdon521/p/4686849.html
http://zhangxugg-163-com.iteye.com/blog/1663687
分享到:
评论

相关推荐

    java 伪造http请求ip地址的方法

    在 Java 中伪造 HTTP 请求 IP 地址是指通过修改 HTTP 请求头中的 IP 地址信息,从而使得服务器端能够获取到伪造的 IP 地址。这种方法可以应用于各种需要伪造 IP 地址的场景,例如在第三方系统接口对接时,需要将调用...

    易语言伪造请求ip 伪造请求ip 网页访问伪造ip

    易语言伪造网页访问ip地址 结合HTTP扩展请求头 X-Forwarded-For 可以对客户端IP进行伪造 X-Forwarded-For 是一个 HTTP 扩展头部,用来表示HTTP请求端真实 IP,HTTP/1.1 协议并没有对它的定义,但现如今X-Forwarded-...

    如何伪造IP 发送HTTP请求request

    在某些特殊场景下,比如测试、安全研究或模拟用户行为,可能会有需求伪造IP地址来发送HTTP请求。然而,值得注意的是,这种行为可能涉及违反网络安全法规,因此在实际操作中需谨慎。 伪造IP发送HTTP请求通常涉及到...

    php伪造http头实现IP欺骗

    通过伪造HTTP请求头,可以改变请求源的表现形式,这种技术在渗透测试及网络安全领域有着重要的应用价值。 #### 知识点二:伪造HTTP头中的IP地址 在网络通信过程中,服务器会记录客户端的真实IP地址,这些信息通常...

    PHP 伪造IP 发送HTTP请求.zip_伪造ip服务器

    "PHP 伪造IP 发送HTTP请求"这个主题涉及到网络编程的核心概念,包括客户端与服务器之间的交互以及如何在这些交互中隐藏或改变源IP地址。下面将详细探讨相关知识点。 首先,我们来了解HTTP(超文本传输协议)。它是...

    python伪造IP多线程发送http请求

    注,需要安全scapy 在centos下,请执行以下脚本安装scapy #!/usr/bin sh cd /tmp wget scapy.net unzip scapy-latest.zip cd scapy-2.* python setup.py install 需要手工启动和杀线程关闭 经测python2可用

    易语言伪造ip访问源码(全注释)

    2. HTTP请求模块:这部分代码会使用伪造的IP地址发起HTTP或HTTPS请求,与目标网站进行交互。 3. 用户代理模拟:为了使伪装更逼真,源码可能还包括了模拟不同浏览器或设备的用户代理字符串。 4. 循环访问机制:如果...

    php 伪造IP和HTTP-REFERER的方法

    HTTP_REFERER字段在HTTP请求头部,用于告知服务器请求页面来自何处。虽然大多数情况下它是真实可靠的,但很容易被伪造。下面将详细介绍两种利用PHP伪造HTTP_REFERER的方法: 1. **使用CURL** - **代码示例**: ```...

    利用php curl更改http头实现伪造IP

    利用php curl更改http头实现伪造IP

    IP地址转向源码

    - 考虑到安全性,应防止恶意用户通过伪造IP地址绕过转向规则。 - 优化代码,以处理大量并发请求,提升服务器性能。 通过以上介绍,你应该对使用易语言实现IP地址转向有了基本了解。在实践中,还需要结合具体的...

    PHP curl伪造IP地址和header信息代码实例

    在PHP开发中,cURL库是一个非常强大的工具,它允许开发者发送HTTP请求并接收响应,进行数据抓取、网页交互等任务。然而,cURL在处理IP地址伪造时存在一定的限制。本文将深入探讨如何使用PHP cURL来伪造IP地址和HTTP...

    用Java来获取访问者真实的IP地址

    但是当请求经过反向代理时,代理服务器会将原始的客户端IP地址信息附加在HTTP请求头中,通常使用`X-Forwarded-For`字段来传递这些信息。因此,为了获得客户端的真实IP地址,我们需要从HTTP请求头中读取这个字段的...

    PHP中使用curl伪造IP的简单方法

    这样,当发送HTTP请求时,服务器端就会接收到这些在HTTP头部中伪造的IP地址。 示例PHP代码如下: ```php require_once dirname(__FILE__)."/iplib.php"; $req_url="***"; foreach($iparr as $forward => $cip){ ...

    node_fake-proxy:使用NodeJS的(伪造)代理

    当在线服务没有提供白名单的ip地址甚至固定范围时,从字面上看,转发请求就变得很有必要。 并且作为标准的“ HTTP代理”似乎正在转发给实际发送者的许多信息,因此再次导致拒绝访问,因此创建了这个“假代理”。 ...

    获得访问者的IP地址

    获取访问者IP地址的技术主要涉及到Servlet或JSP中的HTTP请求对象。在Java Servlet中,我们可以使用`HttpServletRequest`接口的`getRemoteAddr()`方法来获取客户端的IP地址。例如: ```java protected void doGet...

    php 获取IP地址

    2. **安全性考量**:通过HTTP头获取IP地址可能存在伪造的风险,攻击者可以通过修改HTTP头中的IP信息来进行伪装。因此,在涉及到敏感操作时,最好使用可信的方式验证IP地址的有效性。 3. **隐私保护**:在收集和使用...

    获取客户端的IP地址

    此外,还应考虑IP地址可能的伪造问题,以及隐私保护政策对获取IP地址的限制。在处理用户数据时,务必遵守相关法规,尊重用户隐私。 总结起来,通过VS2005和ASP.NET+C#,我们可以利用HttpRequest对象轻松获取客户端...

    java获取ip地址

    以下是一段典型的 Java 代码,用于从 HTTP 请求中获取客户端的真实 IP 地址: ```java public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("X-Forwarded-For"); if ...

    php curl 伪造IP来源的实例代码

    CURL不仅可以用于正常的Web交互,还可以用来模拟用户的登录行为以及伪造IP地址。这在很多情况下可能会造成安全风险,比如刷票、网络攻击等。因此,了解和防范这种伪造IP的行为是非常重要的。 本实例通过PHP的CURL库...

Global site tag (gtag.js) - Google Analytics