簡體   English   中英

以這種方式啟動 session_start 是否更安全?

[英]Is starting session_start this way more secure?

我的一個朋友以這種方式啟動他的 Session。

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

是否有任何安全優勢,針對 Session 劫持等?

只是想知道為什么不像通常的 session_start();

你所需要的只是

session_start()
session_regenerate_id()

這將啟動 session 並在每個請求上更改其 ID。 但是,這並不能阻止 session 劫持。 If the attacker can get the user's session cookie and sent a request back to the server BEFORE the user can, then the attacker gets a brand new session ID, and the user is left with an invalid session token and is effectively logged out.

如果在給定站點的每個頁面的頂部都找到此代碼,則在回發和不同頁面之間將不會維護 session。 如果您想使用 SESSION 作為服務器端存儲您不打算在回發或多頁之間使用的數據,那么我認為它可能是可行的,但這會導致一個非常奇怪且很可能開發不佳的應用程序。

看起來你的朋友可能一直在嘗試做的是清除任何以前的 SESSION 信息,然后開始一個新的。 也許他正在檢查一些量詞,如果它評估正確,那么將其包含在 PHP 頁面中? 無論如何,調用 Rocket 的函數效果更好。

此代碼刪除 session 然后在每次運行時創建一個新的空。

session_destroy();
unset($_SESSION);

這將刪除 session 中的所有數據,然后session_start將使您成為一個全新的數據。

您可以第一次運行此程序以創建新的 session,但如果您想在其他頁面加載時擁有 session 中的數據,您只需要session_start

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM