最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用HTTP_X_FORWARDED_FOR獲取客戶端IP的嚴重后果

 更新時間:2009年11月30日 19:17:53   作者:  
我的建議是不要再使用上面的方法去獲取客戶端IP.即是不要再理會代理情況.
在WEB開發(fā)中.我們可能都習(xí)慣使用下面的代碼來獲取客戶端的IP地址:
C#代碼
復(fù)制代碼 代碼如下:

//優(yōu)先取得代理IP
string IP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(IP)) {
//沒有代理IP則直接取連接客戶端IP
IP = Request.ServerVariables["REMOTE_ADDR"];
}

上面代碼看來起是正常的.可惜這里卻隱藏了一個隱患!!因為"HTTP_X_FORWARDED_FOR"這個值是通過獲取HTTP頭的"X_FORWARDED_FOR"屬性取得.所以這里就提供給惡意破壞者一個辦法:可以偽造IP地址!!
下面是測試代碼:
復(fù)制代碼 代碼如下:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://localhost/ip.aspx");
request.Headers.Add("X_FORWARDED_FOR", "0.0.0.0");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader stream = new StreamReader(response.GetResponseStream());
string IP = stream.ReadToEnd();
stream.Close();
response.Close();
request = null;

"ip.aspx"文件代碼:
復(fù)制代碼 代碼如下:

Response.Clear();
//優(yōu)先取得代理IP
string IP = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
if (string.IsNullOrEmpty(IP))
{
//沒有代理IP則直接取客戶端IP
IP = Request.ServerVariables["REMOTE_ADDR"];
}
Response.Write(IP);
Response.End();

這樣.當(dāng)測試代碼中去訪問ip.aspx文件時."string IP = stream.ReadToEnd();"這段代碼取到的IP數(shù)據(jù)就是"0.0.0.0"!!!!(呵.在真實情況下.這樣的IP地址肯定不是我們想要的結(jié)果.而在有些投票系統(tǒng)中限制一個IP只能投1次票時,如果也是用類似的代碼取得對方IP然后再判斷的話.呵呵.限制就失效咯)...

或者如果你用上面代碼獲取IP地址后后面又不再進行數(shù)據(jù)判斷的話也許還能更進一步進行數(shù)據(jù)破壞!!
比如你用類似上面的代碼中獲取IP地址就直接有這樣的SQL語句:
string sql = "INSERT INTO (IP) VALUE ('" + IP + "')";
那么也許破壞者還可以進行SQL注入進行數(shù)據(jù)破壞!!

這樣看來利用"HTTP_X_FORWARDED_FOR"這個屬性獲取客戶端IP的方法就不再可取了.-_-# 但如果不用這種方法.那么那些真正使用了代理服務(wù)器的人.我們又不能再獲取到他們的真實IP地址(因為某些代理服務(wù)器會在"X_FORWARDED_FOR"這個HTTP頭里加上訪問用戶真正的IP地址).呵.現(xiàn)實就是這樣,某種東西都有有得必有失...

最后,我的建議是不要再使用上面的方法去獲取客戶端IP.即是不要再理會代理情況.你的建議又是怎樣呢???

相關(guān)文章

  • git丟棄本地修改的所有文件(新增、刪除、修改)

    git丟棄本地修改的所有文件(新增、刪除、修改)

    這篇文章主要介紹了git丟棄本地修改的所有文件(新增、刪除、修改),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • windows下Git安裝教程(圖文)

    windows下Git安裝教程(圖文)

    這篇文章主要介紹了windows下Git安裝教程(圖文),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 解決idea打開窗口/tab過多導(dǎo)致隱藏的問題

    解決idea打開窗口/tab過多導(dǎo)致隱藏的問題

    這篇文章主要介紹了解決idea打開窗口/tab過多導(dǎo)致隱藏的問題,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 十進制負數(shù)轉(zhuǎn)換為二進制、八進制、十六進制的知識分享

    十進制負數(shù)轉(zhuǎn)換為二進制、八進制、十六進制的知識分享

    這篇文章主要介紹了十進制負數(shù)轉(zhuǎn)換為二進制、八進制、十六進制的知識分享,需要的朋友可以參考下
    2014-02-02
  • 日常收集整理的Git常用命令

    日常收集整理的Git常用命令

    Git 是一個很強大的分布式版本控制系統(tǒng)。它不但適用于管理大型開源軟件的源代碼,管理私人的文檔和源代碼也有很多優(yōu)勢。下面腳本之家小編給大家?guī)砹薌it 常用命令,感興趣的朋友一起看看吧
    2017-10-10
  • 一個批量編碼轉(zhuǎn)換及ASP/JS加解密/簡繁轉(zhuǎn)換的工具

    一個批量編碼轉(zhuǎn)換及ASP/JS加解密/簡繁轉(zhuǎn)換的工具

    一個批量編碼轉(zhuǎn)換及ASP/JS加解密/簡繁轉(zhuǎn)換的工具...
    2007-05-05
  • 大規(guī)格文件的上傳優(yōu)化思路詳解

    大規(guī)格文件的上傳優(yōu)化思路詳解

    這篇文章主要介紹了大規(guī)格文件的上傳優(yōu)化,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Istio?訪問外部服務(wù)流量控制最常用的5個技巧示例

    Istio?訪問外部服務(wù)流量控制最常用的5個技巧示例

    這篇文章主要介紹了Istio訪問外部服務(wù)流量控制最常用5個技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Mac安裝軟件時提示已損壞的完美解決方法

    Mac安裝軟件時提示已損壞的完美解決方法

    從網(wǎng)上下載的SecureCRT、Principle等設(shè)計軟件,以及輸入法等常用軟件,安裝時可能會提示“已損壞,移至廢紙簍”這類信息,根本無法打開,這篇文章主要介紹了Mac安裝軟件時提示已損壞的解決方法,需要的朋友可以參考下
    2022-07-07
  • Mac如何給應(yīng)用單獨設(shè)置語言

    Mac如何給應(yīng)用單獨設(shè)置語言

    這篇文章主要介紹了Mac如何給應(yīng)用單獨設(shè)置語言,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10

最新評論

科技| 高阳县| 西藏| 澄迈县| 甘洛县| 天等县| 安宁市| 科技| 祥云县| 大姚县| 乡城县| 桂阳县| 石河子市| 萍乡市| 海口市| 伊宁县| 罗平县| 滨海县| 峡江县| 大厂| 城固县| 独山县| 贵南县| 大新县| 浦城县| 景宁| 弋阳县| 北安市| 浠水县| 福海县| 武陟县| 贺州市| 华坪县| 五指山市| 秦皇岛市| 柳江县| 兴安县| 嘉禾县| 罗平县| 西和县| 晋宁县|