在php中销毁和取消这样的会话安全吗?


Is it Security Safe to Destroy and unset a session like this in php

这样销毁和取消会话安全吗?它是否遵循编码标准?

我正在实现一个登出脚本的网站。用户登录后,会话设置成功session_name("website_sess")session_start();

这是当用户单击注销按钮时调用的脚本

if ( ( isset($_SESSION['firstsessionname']) ) 
    && ( !empty($_SESSION['firstsessionname']) ) ) {
        $_SESSION['firstsessionname'] = '';
}
if ( ( isset($_SESSION['secondsessionname']) ) 
    && ( !empty($_SESSION['secondsessionname']) ) ){
        $_SESSION['secondsessionname'] = '';
}
if ( ( isset($_SESSION['thirdsessionname']) ) 
    && ( !empty($_SESSION['thirdsessionname']) ) ){
        $_SESSION['thirdsessionname'] = '';
}
if ( ( isset($_SESSION['fourthsessionname']) ) 
    && ( !empty($_SESSION['fourthsessionname']) ) ){
        $_SESSION['fourthsessionname'] = '';
}

session_name("website_sess");
session_start();
session_unset();
$_SESSION[]=array();
session_destroy();
session_regenerate_id(TRUE);

它是安全的,应该session_regenerate_id(TRUE)在那里?在销毁所有会话后。

正如@KyleK所说,这远远超出了你所需要的。看一下session_regenerate_id docs的Parameters部分。

<?php
// Generate a new session ID and delete the old data while we're at it
session_regenerate_id(true);