我一直在Google上搜索幾個小時,但每個人都以不同的方式處理它。Cookie Stealer /登錄系統(PHP)
所以我不知道如何當有人登錄的處理信息。
我以爲我會保存在會話的用戶ID,名稱和用戶代理的數據。但是如果有人竊取了cookie的內容並將其自己的cookie替換爲被盜的cookie呢?
是的,那其實就是我的問題。我怎樣才能「保護」用戶?檢查IP以及?還要別的嗎?
謝謝, Albin。
我一直在Google上搜索幾個小時,但每個人都以不同的方式處理它。Cookie Stealer /登錄系統(PHP)
所以我不知道如何當有人登錄的處理信息。
我以爲我會保存在會話的用戶ID,名稱和用戶代理的數據。但是如果有人竊取了cookie的內容並將其自己的cookie替換爲被盜的cookie呢?
是的,那其實就是我的問題。我怎樣才能「保護」用戶?檢查IP以及?還要別的嗎?
謝謝, Albin。
測試IP是否保持不變將是一種方法。但是最好測試它是否與給定的子網掩碼相匹配(例如255.255.0.0
),因爲有些用戶可能有動態IP。
另一種「保護」測量是測試瀏覽器的用戶代理是否與用於登錄的用戶代理相同,但當然這很容易繞過。
請確保您僅爲您的域名或子域名設置了Cookie,並且請務必檢查您的代碼是否允許任何XSS flaws,因爲這些通常可用於竊取cookie。
沒有一個會話ID或Cookie被竊取是瀏覽器必須處理的任務。有一些概念方法可以防止第三方瞭解您的cookies的內容,如same origin policy。
您可以通過設置cookie的http-only標誌來幫助瀏覽器。請參閱setcookie
的參數$ httponly。如果cookie被標記爲僅限http,則瀏覽器將無法訪問JavaScript等腳本。該cookie只會在原始的http-header中傳輸。這實際上可以消除基於XSS會話捕獲的風險,因爲它們通常使用javascript。
另一大攻擊是man in the middle attack。攻擊者可以訪問客戶端和服務器之間的流量。他現在可以閱讀http標題,因此可以查看cookie並模仿請求。他甚至可以欺騙客戶的IP地址。爲了防範這種攻擊者,您需要加密連接。大多數網站爲此使用HTTPS。
如果您只需要認證,也可以使用HTTP's digest authentication。有一個使用PHP here的摘要身份驗證的工作示例。
只要確定我確切地知道你在問什麼,你正在尋找方法來阻止會話劫持從像FireSheep,FaceNiff等應用程序?還是我太具體? – 2012-03-04 18:55:57
你太具體了..我一直在考慮防止餅乾偷竊者 – albin 2012-03-04 18:59:40