Php 以这种方式启动会话更安全吗?

Php 以这种方式启动会话更安全吗?,php,session,Php,Session,我的一个朋友就是这样开始他的治疗的 <?php session_start(); session_regenerate_id(); session_destroy(); unset($_SESSION); session_start(); ?> 是否有任何安全优势,防止会话劫持等 只是想知道为什么与通常的session_start()不同 此代码删除会话,然后在每次运行时将新的会话变为空 session_destroy(); unset($_SESSION); 这将删除会话中

我的一个朋友就是这样开始他的治疗的

<?php
session_start();
session_regenerate_id();
session_destroy();
unset($_SESSION);
session_start();
?>

是否有任何安全优势,防止会话劫持等


只是想知道为什么与通常的session_start()不同

此代码删除会话,然后在每次运行时将新的会话变为空

session_destroy();
unset($_SESSION);
这将删除会话中的所有数据,然后
session\u start
将使您成为一个全新的会话


您可以第一次运行此代码来创建新会话,但是如果您希望在其他页面加载会话中的数据,您只需要
session\u start

如果在给定站点的每个页面顶部都找到此代码,则回发和不同页面之间将不会维护会话。如果您想使用会话作为服务器端存储数据,而这些数据不打算跨回发帖或多个页面使用,那么我认为这可能是可行的,但这将导致一个非常奇怪的应用程序,而且很可能开发得很差

看起来您的朋友可能一直在尝试删除以前的会话信息,然后开始一个新的会话。也许他是在检查某个量词,如果它的计算结果正确,那么在PHP页面中包含它?在任何情况下,调用Rocket的函数都能更好地工作。

您所需要的只是

session_start()
session_regenerate_id()

这将启动会话并在每次请求时更改其ID。然而,这并不能阻止会话劫持。如果攻击者能够在用户之前获取用户的会话cookie并将请求发送回服务器,则攻击者将获得一个全新的会话ID,用户将被留下一个无效的会话令牌并有效注销。

您在哪里找到此代码?如果您这样做,您将在每个请求中启动新会话,这不好。这段代码删除了会话,然后每次运行时都会生成一个新的空会话。这也正是我所想的。