2012-06-26 54 views
1

基本上,我想要的是使用替代登錄cookie,因爲他們技術上可以可以猜到(有辦法來解決這個問題,但爲什麼不完全消除威脅) ?可選的基於URL的授權,以避免登錄cookies

我在想什麼的是以下內容的URL,例如/登錄/電子郵件在公用電腦上有一個大系統不使用警告說,將允許用戶自動登錄不是一個cookie,而是通過@ example.com/myPassword

我想問的是,我應該打擾創建一個這樣的系統還是會造成更多的安全漏洞?一方面,基於cookie的一個可以只要再次請求密碼,例如,如果IP或用戶代理不匹配,另一方面,我可以通過不必存儲相當多的數據庫空間cookie名稱。

+0

我還要指出*這也是*技術上可以猜到的。 – jedwards

+0

等待等待。你不想使用cookies,因爲他們可以被猜出,所以你會去在URL中存儲登錄名和密碼*。我不知道該說些什麼。這就像爲每位乘客提供一把槍來改善航空安全。 – JJJ

+0

好吧,如果你不喜歡cookies,請不要使用cookies。將您的會話令牌添加到任何地方的網址,然後就完成了。 – Yoshi

回答

4

用你的方法,用戶的密碼現在暴露在他們的瀏覽器歷史記錄,服務器日誌,任何網絡嗅探工具等等中。用戶的密碼不應該在URL中。所以不,這不是一個好主意。

+0

謝謝,還沒有想到數據不可避免地暴露給用戶瀏覽歷史以外的其他內容。 –

+0

希望他使用SSL,在這種情況下,嗅探器將不適用,但其餘的仍然會。 +1 – jedwards

2

我同意緬,只是想指出一些額外的東西:

  • 餅乾可以被劫持,你是正確的,但事情像SSL這樣做防止這方面做得很好其合理程度。
  • 如果您使用的是SSL,那麼這兩種方法(您的和cookie)都不會被竊聽者隱藏。
  • 正如西蒙指出的那樣,所請求的URL恰好存儲在比cookie更多的地方,這使得意外的妥協或故意的妥協更有可能。
  • 然而,更重要的是,Cookie只是隨機生成的字符串,僅針對您的網站和您的網站,而明文密碼則更有價值。您網站的明文密碼可能與數百個其他網站使用的密碼相同。換句話說,受損的cookie對一個站點的影響最大。另一方面,妥協的密碼可能具有更廣泛的含義。
  • 由於您注意到猜測,PHP會話ID比典型的密碼長得多。 PHP通常會生成27到40個字符的會話ID,是平均密碼大小的4倍以上。此外,在整個搜索空間進行強力搜索時,通常可以通過諸如(修改的)字典攻擊之類的東西找到密碼。換句話說,猜測明文密碼是很多比猜測cookie的內容更容易,如果你擔心cookie的安全性,增加長度幷包含服務器端邏輯以僅接受來自客戶端的cookie/24地址空間。如果您仍然擔心,請強制用戶更頻繁地重新進行身份驗證。