2010-08-31 75 views
2

我正在寫一個項目,在註冊後我保存每個客戶的idsession。 據我所知,session存儲在服務器端的數據,所以它似乎是安全的。但是當會話變量以散列形式存儲時,我多次見過。爲什麼人們以散列形式保存會話數據?

那麼,爲什麼他們這樣做?

非常感謝

回答

2

在大多數情況下,$ _SESSION的內容是安全的。我已經看了很多應用程序,而且我還沒有看到這種散列任意數據的做法。有時像CSRF令牌這樣的值被存儲,並且通常這些都是哈希值。 PHP使用散列函數生成會話標識(cookie值),但這只是一個隨機數。攻擊者有可能訪問通常存儲在/ tmp /中的會話文件。這可以通過SQL注入使用MySQL的load_file()或使用目錄遍歷來完成。有時可以在共享主機環境中訪問其他用戶的會話信息。大多數開發人員不會考慮這種攻擊。

+0

啊,這是他們唯一合理的載體 - 但我還沒有看到的情況下,即使是在共享主機,所有的網站將使用'/ tmp' - 大部分的時間,他們得到自己的臨時空間某處其他。 – Piskvor 2010-09-13 08:36:43

2

使用散列函數並不總是與安全相關的。哈希的最初用途之一是爲文件創建一個準獨特的指紋,以便確保它真的是您想要的文件。如果您想在會話中存儲大量數據,但稍後只需與其進行比較,則永遠不會知道確切的內容,散列可能會節省硬盤驅動器空間並執行比較操作。

相關問題