簡體   English   中英

regenerate_session_id是否會為攔截會話ID的某人重新生成ID?

[英]Wouldn't regenerate_session_id regenerate the id for someone who intercepts a session id?

我在理解這一點時遇到了麻煩,我認為我對網絡漏洞利用的無知才是罪魁禍首。 我對會話固定的理解是這樣的:

  • 黑客使用了一些漏洞來獲取當前登錄的用戶的會話ID。
  • 黑客使用會話ID來訪問站點,竊取會話並有效登錄。

建議您使用regenerate_session_id來減少黑客攔截會話的機會。 現在,這不會觸發regenerate_session_id,用會話ID更新黑客,同時注銷最初登錄的用戶嗎? 這似乎會造成更大的傷害,然后再造成傷害,所以我知道我必須在這里的圖片中丟失一些東西。 我想念什么?

session_regenerate_id是防止會話劫持的好方法,因為劫持通常發生在會話ID被盜后的后續步驟中。

例如:

  1. 造訪XSS注入的論壇
  2. 使用點擊鏈接即可竊取會話
  3. 用戶意識到這不是他想要的,請按回
  4. 站點重新生成一個新的會話ID,保存了用戶,並且由於服務器可能不會立即使用被盜的會話ID,因此不會進行會話固定。

如果由於某種原因而使注視成為實時且快速的事情(例如自動化過程),那么不對,您是對的,這將無法挽救用戶。 這就是為什么您不應該僅依賴session_regenerate_id,還應該依賴用戶的IP地址的原因。

if(!session_id()){
    session_start();
    if(!isset($_SESSION['user_ip'])){
        $_SESSION['user_ip'] = $_SERVER['REMOTE_ADDR'];
    }
    if($_SESSION['user_ip'] !== $_SERVER['REMOTE_ADDR']){
        exit('highjacking detected, session terminated');
    }
    session_regenerate_id();
}

顯然,如果黑客來自同一網絡(例如工作場所),則IP檢測將不起作用,因此您還可以使用UserAgent檢查。 但是,根據數據的敏感性,這有點過頭了。

希望能幫助到你...

暫無
暫無

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

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