3 回答

TA貢獻1848條經(jīng)驗 獲得超6個贊
提供幾個思路:
如果是局域網(wǎng)環(huán)境,那么建議你從系統(tǒng)上,甚至路由器上去限制IP
如果是公開的,偽造IP將無法收到你的Response,也就是說這個Response會發(fā)到那個被偽造的IP去。所以,除非是對你做泛洪攻擊,偽造IP沒有意義。
再說你評論的那個方案,其實是一種驗證的手段,我倒是覺得,這種手段和對稱加密沒什么兩樣,當(dāng)然對稱加密成本要比你說的握手方式成本低很多。
總之,限制IP是為了做訪問限制,而為了數(shù)據(jù)安全,還是要做加密和身份驗證,對稱加密是個好辦法(對稱加密中加入時間等元素,安全性一般比較高)。

TA貢獻1946條經(jīng)驗 獲得超4個贊
"HTTP_" 開頭的$_SERVER很容易偽造.
服務(wù)段判斷還是挺容易的. 其實下面這個代碼也是判斷是否使用proxy.
<?php if ( $_SERVER['HTTP_X_FORWARDED_FOR'] || $_SERVER['HTTP_X_FORWARDED'] || $_SERVER['HTTP_FORWARDED_FOR'] || $_SERVER['HTTP_CLIENT_IP'] || $_SERVER['HTTP_VIA'] || in_array($_SERVER['REMOTE_PORT'], array(8080,80,6588,8000,3128,553,554))) || @fsockopen($_SERVER['REMOTE_ADDR'], 80, $errno, $errstr, 30)) { echo "we caught you"; } ?>
結(jié)論:服務(wù)段最好只取$_SERVER['REMOTE_ADDR']

TA貢獻1829條經(jīng)驗 獲得超7個贊
"X-FORWARDED-FOR" 是代理服務(wù)器通過 HTTP Headers 提供的客戶端IP。代理服務(wù)器可以偽造任何IP。
要防止偽造,不要讀這個IP即可(同時告訴用戶不要用HTTP 代理)。
如果是PHP,$_SERVER['REMOTE_ADDR'] 就是跟你服務(wù)器直接連接的IP,用這個就可以了。
- 3 回答
- 0 關(guān)注
- 155 瀏覽
添加回答
舉報