小编Max*_*ure的帖子

我不明白为什么 session_regenerate_id 在低连接情况下很危险?

我正在研究我的网站的安全性,我会理解为什么应该谨慎使用 session_regenerate_id。在 php 手册文档(https://www.php.net/manual/fr/function.session-regenerate-id.php)中,他们说:

目前,session_regenerate_id 不能很好地处理不稳定的网络,例如移动和 WiFi 网络。因此,您可能会通过调用 session_regenerate_id 遇到丢失的会话。

您不应立即销毁旧会话数据,而应使用销毁时间戳并控制对旧会话 ID 的访问。否则,页面的并发访问可能会导致状态不一致,或者您可能丢失了会话,或者可能导致客户端(浏览器)端竞争条件并可能创建许多不必要的会话 ID。立即删除会话数据也会禁用会话劫持攻击检测和预防。

我不明白为什么这个函数可能意味着失去连接。我们向服务器发送请求,他更改 SID(使用旧值初始化 $_SESSION 并在 save_file 位置创建一个文件),以便他可以向客户端发送 cookie。

任何人都可以向我解释我们可以在哪里丢失会话?我真的很困惑,但我会理解这个问题以解决这个问题......

在此先谢谢大家:D

Ps:我也看过https://www.php.net/manual/fr/function.session-regenerate-id.php上的文档,我不明白第二个例子:

function my_session_start() {
session_start();
if (isset($_SESSION['destroyed'])) {
   if ($_SESSION['destroyed'] < time()-300) {
       // Ne devrait pas se produire habituellement. Cela pourrait être une 
       // attaque ou en raison d'un réseau instable. Supprimez tout l'état 
       // d'authentification de cette session utilisateurs.
        remove_all_authentication_flag_from_active_sessions($_SESSION['userid']);
       throw(new DestroyedSessionAccessException);
   }
   if (isset($_SESSION['new_session_id'])) {
       // Pas encore complètement expiré. …
Run Code Online (Sandbox Code Playgroud)

php session session-hijacking

5
推荐指数
1
解决办法
1294
查看次数

标签 统计

php ×1

session ×1

session-hijacking ×1