首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >会话劫持prevention...how我的脚本能帮到我吗?额外的预防措施?

会话劫持prevention...how我的脚本能帮到我吗?额外的预防措施?
EN

Stack Overflow用户
提问于 2012-11-13 06:57:29
回答 1查看 257关注 0票数 1

当用户登录当前会话时,设置了变量

代码语言:javascript
复制
$_SESSION['user']['timeout'] = time();
$_SESSION['user']['ip'] = $_SERVER['REMOTE_ADDR'];
$_SESSION['user']['agent'] = $_SERVER['HTTP_USER_AGENT'];

在我的common.php页面(所有php页面都需要),我使用了下面的脚本,它在用户每次活动时重置15分钟的计时器,然后检查IP地址和user_agent,如果它们不匹配,当他们第一次登录时/当第一次设置会话时,会话被取消设置,而且长达15分钟的不活动会话也被取消设置。

..。我所做的是一个防止会话劫持的好方法吗?此外,它是否安全,或者是否足够?如果没有,还能做些什么呢?

代码语言:javascript
复制
if(!empty($_SESSION['user'])){  
    if ($_SESSION['user']['timeout'] + 15 * 60 < time()) {
        unset($_SESSION['user']); 
        } else {
        $_SESSION['user']['timeout'] = time();
        if($_SESSION['user']['ip'] != $_SERVER['REMOTE_ADDR']){
            unset($_SESSION['user']); 
        }
        if($_SESSION['user']['agent'] != $_SERVER['HTTP_USER_AGENT']){
            unset($_SESSION['user']); 
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-13 07:35:52

使用15个缩略图的限制,您可以确保如果会话被劫持,攻击者将无法长时间使用它,而用户离开他/她的机器或将其关闭(并且尚未注销)。但是用户工作的时间和攻击者劫持会话的时间又如何呢?检查ip地址是一个好主意,但它有一个很小的限制。而用户没有固定的ip地址,并且他/她已经从网络断开并重新连接。将为其分配一个新的ip地址。并且这种情况迫使他的会话到期,而他是有效用户。此外,这个技巧不会为攻击者做任何事情,因为他们在同一个私有LAN中,具有有效的用户,并且他们都在具有公共ip地址的网关后面。因为它们在您的服务器中具有相同的ip地址( NAT或网关的ip地址)。在我看来,你所做的是好的。但更好的做法是确保网站不受XSS和CSRF攻击。阻止客户端中的javascript注入。如果防止任何此类攻击如此重要,还可以使用ssl来防止网络嗅探器的攻击。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13352988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档