我運行一個HTTPS網站,並希望把這些在php.ini中,以提高安全性:會切換session.cookie_secure註銷我的用戶?
session.cookie_httponly = 1
session.cookie_secure = 1
我能找到很多在網絡上關於此信息,但不針對老持久性會話ID的時候打開這個。
可能切換此結果導致自動登出的用戶,因爲PHP現在預計安全的cookie,但登錄用戶沒有那些......剛切換後?
我運行一個HTTPS網站,並希望把這些在php.ini中,以提高安全性:會切換session.cookie_secure註銷我的用戶?
session.cookie_httponly = 1
session.cookie_secure = 1
我能找到很多在網絡上關於此信息,但不針對老持久性會話ID的時候打開這個。
可能切換此結果導致自動登出的用戶,因爲PHP現在預計安全的cookie,但登錄用戶沒有那些......剛切換後?
是的,它會將它們註銷,因爲他們的會話將結束。
在我的職業生涯中,我已經開啓了數百個使用HTTPS的網站,並且從未讓它記錄每個人。
這些.ini設置通常應用於新會話cookie,而secure
標誌用於瀏覽器不知道通過純文本HTTP進行傳輸。它不應該有任何追溯後果。
session_start()
的代碼調用一個名爲php_session_start()
的C函數,該函數在大多數情況下爲checks $_COOKIE
。
Cookie處理的代碼是SAPI-dependent,但不包含任何特定的邏輯「如果未設置secure
,現在放棄它,現在我們期望它」。
除了包含這個邏輯的一些奇怪的SAPI代碼之外,最有可能發生的事情是cookie不再被髮送到缺少HTTPS的HTTP端點,所以看起來好像用戶正在註銷(但只有當它們不是在任何地方使用HTTPS)。
簡而言之:
只是爲了確認,這些標誌只用於發送到瀏覽器的'Set-Cookie'頭文件。標題指示瀏覽器將來如何使用這些cookie(例如,不可用於JS或不安全的HTTP)......當將cookie發送回服務器時,瀏覽器只發送名稱和值。服務器不知道它們被存儲爲什麼,並且如果服務器重新發送cookie(帶有這些標記),則瀏覽器將簡單地替換舊的cookie ......因此設置這些標記不會導致用戶被記錄(除非有其他問題,例如使用HTTP) –
您能詳細說明一下,還是可以列出資源? – Tieme
我在一個月前遇到了確切的問題。所以我發現它很難:) –