簡體   English   中英

我們應該使用什么技術通過粘貼 cookies 來防止自動登錄?

[英]what techniques should we use to prevent auto-login by pasting cookies?

我讀了 http://www.codinghorror.com/blog/2008/08/protecting-your-cookies-httponly.html

登錄網站,復制必要的 cookie 值,然后將它們粘貼到另一台計算機上運行的另一個瀏覽器中。 這就是它所需要的。 真是大開眼界。

我的問題是,如果我們使用 php/aspnet 會話,這種方法是否也有效。

如果它確實有效,我們(作為 web 開發人員)可以采用什么技術來防止這個技巧起作用。 基本上我不希望用戶能夠通過粘貼 cookies 來登錄他的帳戶,密碼是必須的。

如果以上都不可能,是否意味着即使對於像 Gmail 這樣的谷歌產品,我也可以通過某種方式登錄我的帳戶而無需密碼?

會話是會話 - 通過將 ID 令牌存儲在 cookie 中來完成。 您無法阻止 cookies 在瀏覽器之間手動復制。

您可以嘗試在他們登錄時記錄原始 User-Agent 字符串,並每次進行比較(如果他們使用 Firefox 登錄,並且突然使用 Opera,hmmMmMmmmmmm)。 IP 地址也是如此……但是 IP 地址對於移動用戶和使用多宿主代理服務器系統的人來說是有問題的,例如大多數 AOL 等。 他們的 IP 可能會因每個請求而改變。

沒有萬無一失的方法可以防止無法繞過的 cookie 共享(更改瀏覽器的 UA,以便它們都聲稱是單一類型/版本),或產生誤報(由於代理導致的 IP 更改)。

好吧,作為一個可以成功捕獲HTTP上的任何cookie的軟件的創建者,如果您想要安全,有一些提示:

- 盡可能使用 HTTPS 以防止其他人先捕獲該 cookie。

您的問題的答案:沒有一種具體的方法。 你可以讓它變得更難,這也會讓你的工作(和你的服務器)更難。

- 在服務器端一段時間后過期 cookies,所以即使用戶復制粘貼 cookie,它也不會是有效的。

- 使用 cookie 保存一些元數據,例如遠程 IP 和用戶代理字符串或其他一些標頭。

這些是您可以使用的最好和最直接的技巧,但請記住,有經驗的用戶可以克服大多數這些問題。 只是不要將任何關於安全性的事情留給客戶端,作為黃金法則在服務器端完成。

我不能確定這是否是 php/asp.net session 的問題。 可以防止它的一種方法是將 IP 驗證添加到 cookie,如果它是從不同於創建它的 IP 發送的,則將其用於登錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM