php - php什麼時候以及為什麼應該使用 session_regenerate_id()?

  显示原文与译文双语对照的内容
116 1

為什麼我應該在php中使用 session_regenerate_id() 函數? 我應該在使用 session_start() 之後一直使用它? 我已經讀過了,我必須用它來防止會話固定,這是唯一的原因?

时间:原作者:0个回答

117 0

你應該使用 session_regenerate_id() 來停止 session會話固定。

,這個 Security.SE 回答:

會話劫持指的是竊取會話 cookie 。 在與其他電腦共享本地網路時,這是最容易做到的。 of在巴士星。例如。"。"。一個有會話Y的用戶是在巴士克網站上瀏覽的。 我正在監聽他們的網路流量。 我將用戶的會話 Cookies 作為james的網站,並設置我的瀏覽器來使用它們。 現在當我進入james的網站james的網站。

,這裡網頁為:

會話固定是強制將用戶ID會話強製為顯式值的攻擊技術。 根據目標網站的功能,可以以使用許多技術來實現會話值。 這些技術範圍從跨站點腳本攻擊到 peppering,以及以前發出HTTP請求的網站。 用戶標識會話修復后,攻擊者將等待該用戶登錄。 用戶完成後,攻擊者使用預定義的會話標識值來假定相同的聯機身份。

使用時的

當用戶編輯/更新某些重要的輸入( 更改密碼,憑據,忘記密碼 等等 ) 時,可能會損害站點安全或者隱私政策。

另請參見:

PHP安全指南:會話管理

會話固定( Nice )

原作者:
53 2

我認為會話中毒的問題已經很好地解決了。

要回答"什麼時候應使用這裡選項"部分,後退一步並考慮你的應用程序在會話中的作用是很重要的。 或者者,為了另一種方式,這是你需要解決的關鍵安全問題

如果有人掌握了這個會話他們會得到什麼?

如果你只跟蹤匿名數據( 用戶來到網站,你使用它來跟蹤他們的訪問),那麼就沒有什麼理由重新生成會話了。 劫持者拿起那個會話不會有任何價值。

不過很多網站都提供登錄。 登錄會改變很多事情。 我可以訪問我的個人資料。 我可以以更改設置,因這裡一個可以能希望我的帳戶訪問,尤它的是當正常和管理用戶使用會話。 所以當人們來到我的網站並登錄我的會話時。 它增加了一個額外的安全層,我新登錄的用戶不太可能被劫持。

每當我們向會話添加關鍵數據時,你應該考慮重新生成會話 ID 。 如果你需要硬化你的應用,那麼隨機再生可以能是有用的,但我不會再重新生成。 默認情況下,PHP將會話存儲在本地磁碟上的文件中。 為了減少攻擊向量,你添加了大量磁碟 I/O 。 如果你真的需要更多的安全性,我會在定期的基礎上推薦完全的on重生成。

原作者:
...