復(fù)制代碼 代碼如下: function getIP() { if (isset($_SERVER['HTTP_X_FORWARDED_ " /> 成人抖音破解,免费动漫无遮挡曰批视频软件,55夜色66夜色国产亚洲精品区

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

獲取用戶Ip地址通用方法與常見(jiàn)安全隱患(HTTP_X_FORWARDED_FOR)

分析過(guò)程
這個(gè)來(lái)自一些項(xiàng)目中,獲取用戶Ip,進(jìn)行用戶操作行為的記錄,是常見(jiàn)并且經(jīng)常使用的。 一般朋友,都會(huì)看到如下通用獲取IP地址方法。

復(fù)制代碼 代碼如下:
function getIP() {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else {
$realip = $_SERVER['REMOTE_ADDR'];
}
return $realip;
}


這個(gè)是網(wǎng)上常見(jiàn)獲取,ip函數(shù),用這些值獲取IP,我們首先要弄清楚,這些數(shù)據(jù)是從那個(gè)地方傳過(guò)來(lái)的。

IP獲取來(lái)源

1.'REMOTE_ADDR' 是遠(yuǎn)端IP,默認(rèn)來(lái)自tcp 連接是,客戶端的Ip。可以說(shuō),它最準(zhǔn)確,確定是,只會(huì)得到直接連服務(wù)器客戶端IP。如果對(duì)方通過(guò)代理服務(wù)器上網(wǎng),就發(fā)現(xiàn)。獲取到的是代理服務(wù)器IP了。

如:a->b(proxy)->c ,如果c 通過(guò)'REMOTE_ADDR' ,只能獲取到b的IP,獲取不到a的IP了。

另外:該IP想篡改將很難實(shí)現(xiàn),在傳遞知道生成php server值,都是直接生成的。

2.'HTTP_X_FORWARDED_FOR','HTTP_CLIENT_IP' 為了能在大型網(wǎng)絡(luò)中,獲取到最原始用戶IP,或者代理IP地址。對(duì)HTTp協(xié)議進(jìn)行擴(kuò)展。定義了實(shí)體頭。

HTTP_X_FORWARDED_FOR = clientip,proxy1,proxy2 所有IP用”,”分割。 HTTP_CLIENT_IP 在高級(jí)匿名代理中,這個(gè)代表了代理服務(wù)器IP。既然是http協(xié)議擴(kuò)展一個(gè)實(shí)體頭,并且這個(gè)值對(duì)于傳入端是信任的,信任傳入方按照規(guī)則格式輸入的。以下以x_forword_for例子加以說(shuō)明,正常情況下,這個(gè)值變化過(guò)程。

image


分析Bug風(fēng)險(xiǎn)點(diǎn):

通過(guò)剛剛分析我們發(fā)現(xiàn),其實(shí)這些變量,來(lái)自http請(qǐng)求的:x-forword-for字段,以及client-ip字段。 正常代理服務(wù)器,當(dāng)然會(huì)按rfc規(guī)范來(lái)傳入這些值。但是,當(dāng)一個(gè)用戶直接構(gòu)造該x-forword-for值,發(fā)送給用戶用戶,那將會(huì)怎么樣呢?

image圖(1)

第2步,修改x-forword-fox值,我們看看結(jié)果

image

 

第三步,我們?cè)傩薷南驴纯磿?huì)怎么樣?

image

 

哈哈,看到上面結(jié)果沒(méi),x-forwarded-for不光可以自己設(shè)置值,而且可以設(shè)置任意格式值。 這樣一來(lái),好比就直接有一個(gè)可以寫入任意值的字段。并且服務(wù)器直接讀取,或者寫入數(shù)據(jù)庫(kù),或者做顯示。它將帶來(lái)危險(xiǎn)性,跟一般對(duì)入輸入沒(méi)有做任何過(guò)濾檢測(cè),之間操作數(shù)據(jù)源結(jié)果一樣。 并且容易帶來(lái)隱蔽性。

結(jié)論:

上面getip函數(shù),除了客戶端可以任意偽造IP,并且可以傳入任意格式IP。 這樣結(jié)果會(huì)帶來(lái)2大問(wèn)題,其一,如果你設(shè)置某個(gè)頁(yè)面,做IP限制。 對(duì)方可以容易修改IP不斷請(qǐng)求該頁(yè)面。 其二,這類數(shù)據(jù)你如果直接使用,將帶來(lái)SQL注冊(cè),跨站攻擊等漏洞。至于其一,可以在業(yè)務(wù)上面做限制,最好不采用IP限制。 對(duì)于其二,這類可以帶來(lái)巨大網(wǎng)絡(luò)風(fēng)險(xiǎn)。我們必須加以糾正。

需要對(duì)getip 進(jìn)行修改,得到安全的getip函數(shù)。

這類問(wèn)題,其實(shí)很容易出現(xiàn),以前我就利用這個(gè)騙取了大量偽裝投票。有它的隱蔽性,其實(shí)只要我們搞清楚了,某些值來(lái)龍去脈的話。理解了它的原理,修復(fù)該類bug將是非常容易。

題外話,做技術(shù),有三步,先要會(huì)做,會(huì)解決;后要思考為什么要這么做,原因原理是什么;最后是怎么樣做,有沒(méi)有其它方法。多問(wèn)問(wèn)自己,你發(fā)現(xiàn)距離技術(shù)真理越來(lái)越近。你做事會(huì)越來(lái)越得心應(yīng)手的!

作者:chengmo QQ:8292669

php技術(shù)獲取用戶Ip地址通用方法與常見(jiàn)安全隱患(HTTP_X_FORWARDED_FOR),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 日本巨黄视频 | 337p日本大胆欧美人术艺术精品 | 婷婷久 | 九九综合九九综合 | 伊人久久大香线蕉亚洲 | 巨人导航收录500精品 | 国产欧美国产精品第二区 | 69色视频 | 国产福利三区 | 国产精品乱码一区二区三区 | 综合亚洲色图 | 成人97在线观看免费高清 | 91精品国产自产91精品 | 五月伊人婷婷 | 免费看黄色录像片 | 日本一区二区三区在线网 | 久久国产精品高清一区二区三区 | 国产不卡一区二区三区免费视 | 亚洲涩综合| 女人夜色黄网在线观看 | 黑人一区二区三区中文字幕 | 都市激情综合 | 欧美a一级片 | 四虎在线视频免费观看 | 看黄在线 | 91精品国产麻豆福利在线 | 美女胸又www又黄的网站视频 | 午夜国产精品福利在线观看 | 亚洲另类图片专区 | 国产精品免费小视频 | 女子十八毛片 | 高清国产激情视频在线观看 | 超清乱人伦中文视频在线 | 91视频站| 午夜黄色| 黄色视屏免费看 | 5g影院天天5g爽天天看 | 色老板在线播放 | 国产成人精品s8p视频 | 欧美成人在线视频 | 精品久久亚洲一级α |