我在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. htaccess mod_rewrite没有在另一台计算机上工作
- 2. 会话在一台计算机上工作,但没有在另一台计算机上工作
- 3. 有没有一种方法可以防止Spring Boot重载bean?
- 4. UrlGenerationError在一台计算机上没有路由匹配,但在另一台计算机上没有路由匹配
- 5. 在一台计算机上使用Powershell在另一台计算机上执行PowerShell脚本
- 6. 有没有一种方法可以在Linux上使用C++
- 7. 另一台计算机
- 8. 从另一台计算机
- 9. 有没有一种方法可以使用LINQ语句来计算行数?
- 10. 有没有一种方法可以防止用户输入数字()
- 11. 有没有一种方法可以防止保存在Tortoise中的验证SVN
- 12. mulltiple占单台计算机上的cookie
- 13. 在另一台计算机上使用Github
- 14. 在另一台计算机上使用Access数据库与C#
- 15. 使用Airflow在另一台计算机上安排任务
- 16. 可以使用tensorflow将word2vec算法分布在多台计算机上吗?
- 17. 用于CATIA的VBA宏在一台计算机上工作,并且在另一台计算机上不工作
- 18. 有没有一种方法可以在直播网站上使用drawWindow()方法?
- 19. Dll在另一台计算机上无法正常工作
- 20. 有没有一种方法可以使javascript不计算某个特定字符?
- 21. 是否可以通过AIDL(Android接口定义语言)在另一台计算机上远程调用方法?
- 22. 有没有一种方法可以防止Web dynos进入睡眠状态?
- 23. 有没有一种方法可以防止结构被检测或我可以有一个类将被复制?
- 24. 是否可以通过套接字从一台计算机发送一位到另一台计算机?
- 25. 有没有防止本机自动完成的标准方法?
- 26. C数值积分代码在一台计算机上工作,但在另一台计算机上爆炸
- 27. PHP标题(“位置:...”)在一台计算机上运行,而不是在另一台计算机上运行
- 28. 我可以将Perl安装从一台计算机移动到另一台计算机吗?
- 29. 如何在另一台计算机上启动/停止应用程序?
- 30. SSLHandshakeException使用一台计算机,在另一个作品
你不能。别。 – 2011-09-02 02:28:46