2013-07-28 33 views
-2

似乎外面的傳言是說php會話密鑰並不那麼安全。php會話如何容易

some forum說php鍵只有32位這麼容易被暴力強制。當我看到別的地方(忘記的地方),說php使用IP,創建時間,很多事情來創建一個160位的會話密鑰。

所以......我很困惑。是否可以使用本地會話密鑰,因爲我有點希望儘快運行我的網站,但如果它如此易碎,需要一些時間來做更多的研究。

蠻力怎麼強迫等方式呢?

+1

「我注意到會話密鑰長度只有32位」 - 這是不正確的。這些話後你可能會打斷你的閱讀。 – zerkms

+2

PS:如果你不僅閱讀那裏的第一條評論,而是閱讀第二條和第三條評論,那該怎麼辦? – zerkms

+0

針對依賴隨機數生成器中的缺陷的5.3以下版本,有[攻擊](https://media.blackhat.com/bh-us-12/Briefings/Argyros/BH_US_12_Argyros_PRNG_WP.pdf)。 – Blender

回答

2

PHP會話ID是使用隨機輸入的MD5哈希創建的。 MD5是一個16字節結果(或十六進制數的32個字符)或128位。不是32位。

如果你不喜歡默認的自動生成會話ID的安全性,您可以:

  1. 配置session.hash_function使用SHA-1代替,給你160位。
  2. 用密碼隨機來源自己創建一個會話ID,並通過調用session_id("your-random-value")來設置會話ID。請注意,並非每個字符都可以用於任何會話保存處理程序,您可能會受到限制。

有了這些信息,我認爲可以安全地得出結論,PHP會話ID是安全的。

+0

它不是完全隨機的輸入:https://github.com/php/php-src/blob/master/ext/session /session.c#L308 – Blender