我在cookie中添加了一些認證信息。出於安全原因,我想阻止某人將cookie複製到另一臺計算機並使用它登錄。我該怎麼做?有沒有方法可以防止cookie在另一臺計算機上使用?
回答
你是什麼意思按會話?據我所知,HTTP中沒有會話。 ASP.NET會話可以用cookie來實現。 – Dagang 2011-04-17 05:31:48
你可以加密提供了可靠的,公開的,衆所周知的算法的信息。然後,如果cookie被複制,收件人將無法從中收集任何信息。
當然這意味着您需要在服務器上進行加密和解密以確保安全,否則(如果您使用JavaScript)可以從JavaScript代碼獲取私鑰並用於解密cookie。您還需要確定您收到的cookie是來自原始收件人還是副本。
既然你必須在服務器端完成它的工作,那麼你也可以使用會話。這就像一個cookie,除了傳遞一個ID而不是實際的數據(該ID用於在服務器上查找數據)。但是仍然可以複製會話cookie並使另一臺計算機顯示爲作爲原始登錄,這就是FireSheep所做的。
如前所述,如果您將驗證信息以明文方式放入cookie中,您應該認真考慮使用類似會話的內容。
一旦你有了sesssions,也許你可以將會話ID與後端的IP地址相關聯,並檢查會話ID和請求IP地址是否匹配:這樣,如果有人複製包含會話ID的cookie,然後試圖遠程訪問該站點,會話ID和IP不匹配,並且認證將失敗。
我怎樣才能得到客戶端的IP地址?我沒有在HTTP協議中看到它。 – Dagang 2011-04-17 05:51:13
這裏是一個與Python的例子:http://stackoverflow.com/questions/979599/extracting-ip-from-request-in-python – thenoviceoof 2011-04-17 06:19:22
基本上,它可能實際上不是HTTP協議的一部分,但你的語言界面應該提供一些方法來獲得它 – thenoviceoof 2011-04-17 06:21:04
您不應該將認證信息放入cookie本身。設置cookie時,應該創建一個會話,並綁定到一些持久存儲(sql/nosql)。
這基本上是一些與其他信息匹配的唯一隨機生成的ID。隨機生成的ID作爲cookie發送。在連續的請求中,您讀取cookie,並嘗試從中獲取用戶帳戶。
您可以在會話中放置約束,它只能從您分配給它的IP地址訪問。你也可以將它綁定到用戶代理(儘管這是安全的,用戶代理可以配置)。
- 1. 無法在一臺計算機上運行jar,但可以在另一臺計算機上運行
- 2. htaccess mod_rewrite沒有在另一臺計算機上工作
- 3. 會話在一臺計算機上工作,但沒有在另一臺計算機上工作
- 4. 有沒有一種方法可以防止Spring Boot重載bean?
- 5. 如何防止將PDF複製到另一臺計算機
- 6. UrlGenerationError在一臺計算機上沒有路由匹配,但在另一臺計算機上沒有路由匹配
- 7. 在一臺計算機上使用Powershell在另一臺計算機上執行PowerShell腳本
- 8. 使用PowerShell從另一臺計算機啓動計算機
- 9. 有沒有一種方法可以在Linux上使用C++
- 10. 有沒有一種方法可以使用LINQ語句來計算行數?
- 11. 另一臺計算機
- 12. 從另一臺計算機
- 13. 另一臺計算機上的xperfview
- 14. 可以將Windows vpc從一臺計算機複製到另一臺計算機上?
- 15. 有沒有一種可行的DRM方法可以防止錄製最終流?
- 16. 有沒有一種方法可以防止用戶輸入數字()
- 17. 有沒有一種方法可以防止保存在Tortoise中的驗證SVN
- 18. mulltiple佔單臺計算機上的cookie
- 19. 有沒有辦法在OSX中捕獲控制檯控件(鍵盤/鼠標/遠程),以便它們可以在另一臺計算機上覆制?
- 20. 在另一臺計算機上使用Access數據庫與C#
- 21. 使用Airflow在另一臺計算機上安排任務
- 22. 在另一臺計算機上使用Github
- 23. 可以使用tensorflow將word2vec算法分佈在多臺計算機上嗎?
- 24. 有沒有一種方法可以在沒有while循環的計算機之間進行數據通信? C++
- 25. 用於CATIA的VBA宏在一臺計算機上工作,並且在另一臺計算機上不工作
- 26. 有沒有一種方法可以在直播網站上使用drawWindow()方法?
- 27. 有沒有一種方法可以使javascript不計算某個特定字符?
- 28. Dll在另一臺計算機上無法正常工作
- 29. 可能爲一臺計算機上的「網絡服務」授予另一臺計算機上的目錄權限?
- 30. 是否可以從一臺計算機(通過終端遠程訪問另一臺計算機)將文件複製到另一臺計算機?
你不能。別。 – 2011-09-02 02:28:46