成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

java 偽造http請(qǐng)求ip地址

MasonEast / 3457人閱讀

摘要:但是可以通過偽造數(shù)據(jù)包的來源,即在請(qǐng)求頭加一個(gè)的頭信息,這個(gè)頭信息配置的是地址,它代表客戶端,也就是的請(qǐng)求端真實(shí)的。因此在上面代碼中加上如下代碼服務(wù)端通過獲取請(qǐng)求,并且校驗(yàn)安全性,代碼如下總結(jié)通過請(qǐng)求頭追加頭信息可以偽造請(qǐng)求地址。

最近做接口開發(fā),需要跟第三方系統(tǒng)對(duì)接接口,基于第三方系統(tǒng)接口的保密性,需要將調(diào)用方的請(qǐng)求IP加入到他們的白名單中。由于我們公司平常使用的公網(wǎng)的IP是不固定的,每次都需要將代碼提交到固定的服務(wù)器上(服務(wù)器IP加入了第三方系統(tǒng)的白名單),頻繁的修改提交合并代碼和啟動(dòng)服務(wù)器造成了額外的工作量,給接口聯(lián)調(diào)帶來了很大的阻礙。
正常的http請(qǐng)求
我們正常發(fā)起一個(gè)http的請(qǐng)求如下:
    import org.apache.http.HttpEntity;
    import org.apache.http.client.config.RequestConfig;
    import org.apache.http.client.methods.CloseableHttpResponse;
    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.HttpClients;
    import org.apache.http.util.EntityUtils;
    
    public static String getPost4Json(String url, String json) throws Exception {
        CloseableHttpClient httpClient = HttpClients.createDefault();
        HttpPost httpPost = new HttpPost(url);
        /* 設(shè)置超時(shí) */
        RequestConfig defaultRequestConfig = RequestConfig.custom().setSocketTimeout(5000).setConnectTimeout(5000).setConnectionRequestTimeout(5000).build();
        httpPost.setConfig(defaultRequestConfig);
        httpPost.addHeader("Content-Type", "application/json;charset=UTF-8");
        httpPost.setEntity(new StringEntity(json, "UTF-8"));
        CloseableHttpResponse response = null;
        String result = null;
        try {
            response = httpClient.execute(httpPost);
            HttpEntity entity = response.getEntity();
            result = EntityUtils.toString(entity, "UTF-8");
        } catch (Exception e) {
            throw e;
        } finally {
            if (response != null) response.close();
            httpClient.close();
        }
        return result;
    }

由于沒有加入白名單的原因,這樣的請(qǐng)求顯然無法調(diào)用到第三方的接口。這時(shí)候考慮能否將請(qǐng)求的ip改為白名單的一個(gè)ip,服務(wù)器在解析時(shí)拿到的不是正常的ip,這樣能否正常調(diào)用呢?

偽造http請(qǐng)求ip地址

我們知道正常的tcp/ip在通信過程中是無法改變?cè)磇p的,也就是說電腦獲取到的請(qǐng)求ip是不能改變的。但是可以通過偽造數(shù)據(jù)包的來源ip,即在http請(qǐng)求頭加一個(gè)x-forwarded-for的頭信息,這個(gè)頭信息配置的是ip地址,它代表客戶端,也就是HTTP的請(qǐng)求端真實(shí)的IP。因此在上面代碼中加上如下代碼:

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

服務(wù)端通過x-forwarded-for獲取請(qǐng)求ip,并且校驗(yàn)IP安全性,代碼如下:

String ip = request.getHeader("x-forwarded-for");
總結(jié)

通過請(qǐng)求頭追加x-forwarded-for頭信息可以偽造http請(qǐng)求ip地址。但是若服務(wù)器不直接信任并且不使用傳遞過來的 X-Forward-For 值的時(shí)候偽造IP就不生效了。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77304.html

相關(guān)文章

  • 利用X-Forwarded-For偽造客戶端IP漏洞成因及防范

    摘要:在有反向代理的情況下,直接使用獲取到的地址是所在服務(wù)器的地址,而不是客戶端的。如何防范方法一在直接對(duì)外的反向代理服務(wù)器上配置如果有多層代理,內(nèi)層的配置在最外層即直接對(duì)外提供服務(wù)的使用代替上面的,可以防止偽造。 問題背景 在Web應(yīng)用開發(fā)中,經(jīng)常會(huì)需要獲取客戶端IP地址。一個(gè)典型的例子就是投票系統(tǒng),為了防止刷票,需要限制每個(gè)IP地址只能投票一次。 如何獲取客戶端IP 在Java中,獲取客...

    Yuqi 評(píng)論0 收藏0
  • 干貨:Java正確獲取客戶端真實(shí)IP方法整理

    摘要:但是在通過了,等反向代理軟件就不能獲取到客戶端的真實(shí)地址了。下面是一個(gè)參考獲取客戶端地址的方法如果使用的是連接池,可以參考使用方法,但這個(gè)是經(jīng)過多級(jí)代理的地址,需要自己處理下獲取第一個(gè)。 showImg(https://segmentfault.com/img/remote/1460000015379119); 在JSP里,獲取客戶端的IP地址的方法是:request.getRemot...

    felix0913 評(píng)論0 收藏0
  • IP偽造與防范

    摘要:對(duì)協(xié)議進(jìn)行擴(kuò)展。通過此項(xiàng)措施,強(qiáng)行將設(shè)置為客戶端使客戶端無法通過本文所述方式偽造。 在閱讀本文前,大家要有一個(gè)概念,由于TCP需要三次握手連接,在實(shí)現(xiàn)正常的TCP/IP 雙方通信情況下,是無法偽造來源 IP 的,也就是說,在 TCP/IP 協(xié)議中,可以偽造數(shù)據(jù)包來源 IP ,但這會(huì)讓發(fā)送出去的數(shù)據(jù)包有去無回,無法實(shí)現(xiàn)正常的通信。 一些DDoS 攻擊,它們只需要不斷發(fā)送數(shù)據(jù)包,而不需要正...

    tianlai 評(píng)論0 收藏0
  • IP偽造與防范

    摘要:對(duì)協(xié)議進(jìn)行擴(kuò)展。通過此項(xiàng)措施,強(qiáng)行將設(shè)置為客戶端使客戶端無法通過本文所述方式偽造。 在閱讀本文前,大家要有一個(gè)概念,由于TCP需要三次握手連接,在實(shí)現(xiàn)正常的TCP/IP 雙方通信情況下,是無法偽造來源 IP 的,也就是說,在 TCP/IP 協(xié)議中,可以偽造數(shù)據(jù)包來源 IP ,但這會(huì)讓發(fā)送出去的數(shù)據(jù)包有去無回,無法實(shí)現(xiàn)正常的通信。 一些DDoS 攻擊,它們只需要不斷發(fā)送數(shù)據(jù)包,而不需要正...

    solocoder 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<