我們有一個用zend框架編寫的PHP應用程序,並想知道如果我們想讓用戶登錄超過一天,最好的方法是什麼,例如,一週或更多。保持登錄在PHP應用程序爲+1周
我們是否需要會話? (使用表空間和內存?)還是使用cookie更好? (安全性?)
我們有一個用zend框架編寫的PHP應用程序,並想知道如果我們想讓用戶登錄超過一天,最好的方法是什麼,例如,一週或更多。保持登錄在PHP應用程序爲+1周
我們是否需要會話? (使用表空間和內存?)還是使用cookie更好? (安全性?)
HTTP是無狀態的,這意味着Web服務器會在服務完您的請求後忘記您是誰。會議是解決這個問題的方法。當使用Sessions時,瀏覽器和服務器將在每個請求上交換一個標識符,讓Web服務器將以前存儲的數據連接到這個特定的請求者。
ID是通常是存儲在Cookie中。將您的會話Cookie設置爲在一週內過期,並且您已全部設置爲讓您的用戶登錄一週。
見
嚴格地說你不需要會話。您混淆了兩件事:
因此,基本上,Cookie用於兩個目的 - 存儲短期(小時或小時)會話ID並將用戶憑證存儲幾天/幾周/月。
我不同意第二個要點。切勿在Cookie中使用憑據。這是不安全的。此外,沒有理由說Session或它的Cookie應該是短暫的。瀏覽器關閉時刪除的Session Cookie只是默認設置。這可以非常容易地改變爲任何你想要的。 – Gordon 2010-07-10 10:44:16
@戈登它只是不安全,如果你讓它不安全。您可以將cookie標記爲安全,然後僅通過https發送。 – Artefacto 2010-07-10 10:46:41
這隻會使用從客戶端到服務器的HTTPS。此外,我不明白爲什麼我應該使用第二個cookie時,這可以很容易地與會話Cookie單獨處理。終身一生。 – Gordon 2010-07-10 10:49:30
「記住我」始終是安全漏洞,無論您使用的是cookie還是會話 - 某人可以(理論上)竊取cookie,從而無需任何密碼即可進入帳戶。有許多方法可以通過允許在相同的IP下進行召回來提高安全性。 Cookie是AFAIK不太安全,但這取決於您實施身份驗證的方式。例如,通過在cookie中保存密碼散列,你幾乎可以給入侵者一個真實的密碼(這是一個不允許的,它可以在其他webapps上使用),因爲有字典可以從散列中獲得簡單的密碼。醃製散列幫助不多。
總而言之,會話是最簡單和最好的方式。如果您爲應用程序使用多個網絡服務器,請使用表格,否則磁盤上的會話可以使用。
您仍然使用cookie來實施會話,如果有人截獲cookie,他可以劫持會話。所以真的,提出一個會議與餅乾二分法是沒有多大意義的。會話是一個不同的,更抽象的概念,Cookie是實現這種概念的一個常見部分。 – Artefacto 2010-07-10 10:53:13
會話使用cookie,寫在我的第一句話中。但是,如果cookie被盜,服務器還可以比較用戶的IP並拒絕自動輸入。這也提到;) – 2010-07-10 21:40:13
你現在在使用什麼? – 2010-07-10 10:30:18