我的一位朋友以这种方式开始他的会议。
<?php
session_start();
session_regenerate_id();
session_destroy();
unset($_SESSION);
session_start();
?>
对于会话劫持等是否有任何安全优势。
只是想知道为什么与通常的session_start();
相反答案 0 :(得分:5)
你需要的只是
session_start()
session_regenerate_id()
这将启动会话并在每个请求上更改其ID。但是,这不会阻止会话劫持。如果攻击者可以获取用户的会话cookie并在用户可以之前将请求发送回服务器,那么攻击者将获得一个全新的会话ID,并且用户将留下无效的会话令牌并有效地注销。
答案 1 :(得分:2)
如果在给定站点的每个页面的顶部找到此代码,则不会在回发和不同页面之间维护会话。如果你想将SESSION作为服务器端存储用于你不会在邮件后面或多个页面上使用的数据,那么我认为它可能是可行的,但这会产生一个非常奇怪且极有可能很糟糕的应用程序。
您的朋友可能尝试做的事情是删除之前的任何SESSION信息,然后开始新的信息。也许他正在检查一些量词,如果它正确评估然后将其包含在PHP页面中?无论如何,调用Rocket的功能会更好。
答案 2 :(得分:0)
此代码删除会话,然后在每次运行时创建一个新的空白。
session_destroy();
unset($_SESSION);
这会删除会话中的所有数据,然后session_start
会让您成为全新的数据。
您可以第一次运行此操作来创建新会话,但如果您希望在其他页面加载的会话中拥有数据,则只需session_start
。