我听说人们可以编辑 cookie 并更改他们的名称和访问级别(等等),所以我编写了一个简单的 PHP 代码来防止他们编辑用户的属性(例如访问级别)。这里是:
doConnect();
$currentIP = $_SERVER['REMOTE_ADDR'];
$page = "geton";
$AHQuery = mysql_query("SELECT * FROM users WHERE user='{$_SESSION['uName']}' ORDER BY id DESC");
while($AHLine = mysql_fetch_array($AHQuery)) {
$trueIP = $AHLine['ip'];
$trueLevel = $AHLine['acesslevel'];
}
if($currentIP != $trueIP || $_SESSION['uAcessLevel'] != $trueLevel) {
echo "<script>alert('Please, login again.'); location.href='{$page}'</script>";
exit;
}
上面的代码检查会话用户(X USER)是否是一个有效的名字,如果它等于最新的 X USER 的 ip(当你登录时,你的 ip 被收集并保存在用户表中),如果不是,那么会话被破坏,用户被迫再次登录。无论如何,我的问题是:这种方法安全吗,它真的可以防止人们查看私人页面并以其他用户的身份发表评论吗?(这个功能在我的 php forumblog 的每个页面中)有没有更好更安全的方法来做到这一点?
我尽量说清楚,希望大家理解,谢谢关注。