因此,我正在根据当前会话检查会话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