加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP检查用户代理和IP以防止会话劫持

发布时间:2020-12-13 16:35:14 所属栏目:PHP教程 来源:网络整理
导读:我正在试图弄清楚如何防止会话劫持.这就是我在想的事情: 与用户标识会话一起,也添加用户代理和用户IP会话.每次加载页面时,都会检查这些会话以查看它们是否匹配 – 这是否足够?例如: ?php$userIp = $_SESSION['userIp'];$userAgent = $_SESSION['userAgent
我正在试图弄清楚如何防止会话劫持.这就是我在想的事情:

与用户标识会话一起,也添加用户代理和用户IP会话.每次加载页面时,都会检查这些会话以查看它们是否匹配 – 这是否足够?例如:

<?php

$userIp = $_SESSION['userIp'];
$userAgent = $_SESSION['userAgent'];

if ($userIp != $_SERVER['REMOTE_ADDR'] || $userAgent != $_SERVER['HTTP_USER_AGENT'] {
    session_destroy();
}

?>

谢谢.

它比那复杂得多.您的网站/服务将由具有不同设置的各种人员访问.可能出错的第一件事是,如果有人正在通过代理服务器.您的应用将看到的IP可以更改,并且会话将为有效用户提供收支平衡.

如果你绝对需要对IP做一些事情,那么你可以做的最多的事情就是检查原始国家/地区.如果您发现一个来自加拿大的登录和另一个来自印度的登录,则可能存在问题.即使这样,它也不是万无一失的.

用户代理也很容易伪造:如果我可以获得某人的PHPSESSIONID,那么我也可以获得他们的用户代理.所以这里没有多少成就.

保护某人会话的最佳方法是将经过身份验证的所有内容放在HTTPS后面,并确保会话cookie仅限HTTPS.

编辑:如果您在会话后保护的数据非常敏感,并且您的用户需要了解它,您可以随时向他们展示为其用户登录的其他会话.例如,通过GMail完成同样的事情.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读