2013-04-30 48 views
2

在我的網站上我的登錄密碼,如果密碼&用戶名是正確的,我設置一個cookie保持登錄的用戶 我只是從他不」用戶聽到。不能通過他的瀏覽器自動接受cookie,並且這會阻止他登錄。該cookie沒有設置。用戶不接受Cookie - 登錄PHP

有沒有簡單的方法來解決這個問題? 如果您需要我使用的代碼,告訴我。

+6

雖然我明白有些用戶會定期清除cookie /禁用它們,但我認爲它不是無理說,對於使用您網站上的某些功能(例如那些需要登錄)的cookie是必需的。有閃光黑客或HTML5本地存儲潛在的解決方法,但這是什麼餅乾設計的,我會懷疑你的用戶不太明白,(也許只知道跟蹤餅乾?) – Basic 2013-04-30 11:31:47

+3

@Basic或只是通過會話ID在URL(這也是一個可怕的解決方案)。對於OP:用戶不值得花費時間來制定一些醜陋的工作。如果他不接受這是他的問題的餅乾。 – PeeHaa 2013-04-30 11:34:41

+0

@PeeHaa埽我只是在回答中輸入:) – Basic 2013-04-30 11:36:01

回答

1

如果你正在使用複雜的javascript/ajax,可以讓它起作用,但通常是一種真正的痛苦。

總之,不是將會話ID存儲在cookie中,而是將其嵌入到每個鏈接的末尾。

所以

http://example.com/somepage.php 

成爲

http://example.com/somepage.php?SessionId=ABC123 

不幸的是,雖然PHP可以在某些情況下,爲你做這個,它不與鏈接幫助你建立自己的JavaScript - 而且只需要點擊沒有ID的單個鏈接以有效地登出用戶

查看this page瞭解更多信息

正如Quentin在評論中提到的,如果您沒有使用cookie來識別創建會話的瀏覽器,那麼共享鏈接可能會共享該會話。這可以通過檢查IP地址/用戶代理來緩解但不能阻止,但是在使用NAT和標準瀏覽器的大型企業環境中,這可能會失敗

+4

在URL中存儲會話標識使得非常容易泄漏它,這種技術會帶來嚴重的安全風險。 – Quentin 2013-04-30 11:36:38

+0

Alice轉到一個銷售Stuff的網站。她得到一個會話ID將她和她的購物籃聯繫起來。她喜歡一件事。她將地址欄中的URL複製/粘貼到Twitter,與其他人共享Thing。 Bob也喜歡Thing,並將其添加到Alice的購物籃中,然後看到她購物籃中的其他物品。 – Quentin 2013-04-30 11:42:56

+0

非常好,現貨。感謝您的基本答案,但我想我會嘗試,如果用戶取消激活他的Cookie,只需輸入一條消息。再次感謝。 – 2013-04-30 15:48:03