因此,我正在根據當前會話檢查會話IP。我看了一下可能有我的答案的問題,但他們都沒有答案。檢查會話IP是否與當前IP匹配 - PHP
會發生什麼情況是,每次我連接,我得到「您的IP不匹配......」
<?php
if (isset($_SESSION['ip']) and (strcmp($_SESSION['ip'], md5($_SERVER['REMOTE_ADDR'])))){
echo "Your IP doesn't match your session, your IP: ". $_SERVER['REMOTE_ADDR'] ." and your session IP: ". $_SESSION['ip']. ". <a href='/scripts/signout.php'>Click here to log out.</a>";
die;
}
?>
我知道使用HTTPX和落實有我解決這個問題了。 另外$ _SESSION [ 'IP']是要比較會話的IP和IP地址的MD5的MD5(當前IP)
不需要md5。並且它不會在錯誤消息中始終如此使用。否則這種安全性可能會導致有效用例的問題。 (代理服務器場後面的用戶) –
['strcmp()'](http://www.php.net/manual/en/function.strcmp.php)返回0,如果兩個字符串相等,並且零是一個falsy值,所以如果他們匹配,你的'if()'不符合。您需要測試'!== 0' –
跟蹤會話中IP的更改沒有任何安全優勢,並且它是完全有效的IP協議,用於更改IP。 – cgTag