2012-10-19 113 views
1

我有需要一定的行動,需要SSL連接的一個CakePHP的2+網站(即登錄名,密碼重置等),但我不要求整個網站保持安全。在執行此操作時,我發現在SSL和非SSL頁面之間移動時會話未被保存。我發現這個問題堆棧https://stackoverflow.com/a/12068099/1353839解決了我的問題,但我想知道在什麼成本。重定向SSL非SSL

所需註釋掉的lib /蛋糕/型號/數據源行對上述問題的回答/如下:

if (!isset($sessionConfig['ini']['session.cookie_secure']) && env('HTTPS')){ 
    // $sessionConfig['ini']['session.cookie_secure'] = 1; // <-- Commented Out 
} 

是否有任何安全後果來這樣做呢?此外,有沒有辦法做到這一點,而不會影響蛋糕核心文件,因爲這通常是皺眉了?

在此先感謝。

+0

參見:http://stackoverflow.com/questions/7969719/cakephp-cookie-session-problems –

回答

5

首先,修改核心文件是一個壞主意,你應該在你的configuration設置「session.cookie_secure」代替。

一個會議的目的是對關鍵信息存儲在服務器上,並通過會話密鑰與客戶端的信息相關聯。會話密鑰通常存儲在cookie中,並隨每個請求發送到服務器。使用安全cookie可防止將會話密鑰傳輸到非SSL頁面;這就是爲什麼你看不到會話數據。

關閉安全cookies允許將會話密鑰發送到非SSL頁面,但是,它以純文本形式發送,因此您將易受session hijacking的影響。取決於你的行爲,這可能會或可能不是什麼大不了的事情。無論如何,通過SSL進行登錄,密碼重置等..你會保護這些信息是用戶的實際輸入(即用戶名,密碼等)。

5

您將通過SSL對用戶進行身份驗證,以使MITM無法攔截身份驗證,但之後您希望通過純文本HTTP發送會話cookie,以便MITM有機會將其提取並用於他們自己?

鑑於這種情況,什麼是使用SSL在所有的點?

(是的,我知道你的會話cookie到期,因此得到那些它並不像得到實際的憑據,好一個,但是這仍然聽起來像一個可怕的念頭安全明智的。)

1

不要修改核心文件。你可以在你的app/Config/core.php中指定所需的配置。閱讀上面的會話配置語句中的註釋,並提及如何指定所需的ini設置。