2011-11-24 46 views
1

我有一個PHP站點,其中20%的訪問者沒有Cookie支持。如何根據Cookie支持提供基於URL和基於COOKIE的會話跟蹤?

如何根據Cookie支持提供基於URL和基於Cookie的會話跟蹤?

換句話說,如果用戶接受cookie,那麼我們使用基於cookie的會話跟蹤。但是,如果他們不這樣做,那麼我們切換到基於URL的會話跟蹤,以便這些用戶仍然可以使用該網站。

我不想失去20%的用戶,我不希望網站是基於URL會話跟蹤的100%,因爲這不僅會造成安全風險,而且還會造成一些我不想要的限制其他80%的用戶不得不忍受。

+0

您無視安全風險論點,惡意用戶可以自行禁用Cookie。 – TJHeuvel

+0

@TJHeuvel:我具體指的是惡意用戶劫持另一用戶會話或讓合法用戶無意中通過電子郵件/即時消息將他們的會話URL發送給朋友的安全風險。 – ProgrammerGirl

回答

1

PHP幾乎爲你自動完成這項工作。如果不能使用cookie,它會將會話ID附加到所有鏈接。這應該適用於任何默認的PHP安裝。

+0

這並不是我的經驗,也許是由於我繼承的網站上的特定設置。事實上,這似乎是這樣的,session.use_trans_sid的默認值必須是true,但實際上是false。你可以請鏈接到它說這是默認行爲的地方嗎? – ProgrammerGirl

+0

哦。你是對的。我的錯。 [在這裏](http://www.php.net/manual/en/session.configuration.php#ini.session.use-trans-sid)它說默認值是0.我相當確定所有我的PHP安裝使用它。我現在很困惑。 –

+0

嘗試在主頁上設置cookie,然後檢查cookie是否在第二頁上正確設置,如果不正確,則設置session.use_trans_sid = 1,以便自動將SID附加到URL?會有那樣的工作嗎?如果是這樣,你能否編輯你的解決方案來整合這樣的東西,這樣我就可以接受它了?謝謝。 – ProgrammerGirl

相關問題