Cookies 当通过https连接时,在Cookie中存储用户密码有什么风险? 便条

Cookies 当通过https连接时,在Cookie中存储用户密码有什么风险? 便条,cookies,security,Cookies,Security,我对会话和基于web的安全身份验证等理论有很好的理解,因此请不要从基础知识开始,也不要给出模棱两可的答案。我不是在寻找最佳实践,因为我知道它们。我在寻找它们背后的真正风险,这些风险使最佳实践成为现实 我已经阅读并同意主体的观点,即在任何给定时间,只有会话标识符应该存储在Cookie中 故事 然而。。。我继承了一个锈迹斑斑的老应用程序,它将用户名、密码和一个附加ID存储在Cookie中,并作为验证/授权在整个站点进行检查 此网站始终(只能)通过HTTPS访问,并且根据您的立场,它是一个“低风险”网

我对会话和基于web的安全身份验证等理论有很好的理解,因此请不要从基础知识开始,也不要给出模棱两可的答案。我不是在寻找最佳实践,因为我知道它们。我在寻找它们背后的真正风险,这些风险使最佳实践成为现实

我已经阅读并同意主体的观点,即在任何给定时间,只有会话标识符应该存储在Cookie中

故事 然而。。。我继承了一个锈迹斑斑的老应用程序,它将用户名、密码和一个附加ID存储在Cookie中,并作为验证/授权在整个站点进行检查

此网站始终(只能)通过HTTPS访问,并且根据您的立场,它是一个“低风险”网站

应用程序在其当前状态下不能以处理会话的方式重新编写—要正确实现这样的功能,基本上需要重新编写整个应用程序

问题 当向当权者建议将其用户的ID/密码以明文形式存储在Cookie中是一个非常糟糕的主意时,考虑到连接总是通过HTTPS启动和操纵,涉及到什么真正的风险


例如:通过物理访问包含Cookie的机器是否是泄露此信息的唯一明显方式?还存在哪些真正的风险?

一些其他风险包括哪些可能导致cookie被盗,谁知道哪些浏览器漏洞可能导致cookie被盗。

一些浏览器将cookie保存在可以在计算机上显示的文件中。我想到了IE6。 在我看来,cookies并不仅仅局限于一个站点。许多广告在多个网站上使用cookies。如果我去NextTag找尼康D700相机 我在slashdot.org上看到NextTag广告。这是一个跨站点cookie的示例。大多数用户在网络上都使用相同的密码,因此如果你将密码存储到一个站点,并使其更容易访问,那么恶意用户迟早会访问它


总而言之,这将是一个非常糟糕的想法。在我工作的网站上,我们根本不保存用户密码。我们将它们转换为散列键并保存散列键。这样我们可以验证用户,但是如果我们丢失了内容,那么就不会暴露密码。这是在服务器端,而不是浏览器端

HTTPS只是通过加密通过网络传输的数据来防止中间人攻击。客户机上的信息仍然是纯文本。因此,客户端计算机上的任何东西都可以通过cookie信息提取相关信息。

给定浏览器的“cookie jar”可能无法安全存储,即攻击者可能无法通过LAN或分布式文件系统对其进行物理访问而读取(例如,如果计算机将用户的家存储在存储服务器上,以允许漫游),或通过计算机上运行的应用程序。两个主要漏洞是跨站点脚本攻击和有人访问用户的计算机


你有没有想过只在cookie中存储一个密码散列而不是原始密码?这需要一些编码更改,但不会像交换整个身份验证系统那样多。

这里的人已经提到了“中间人”攻击。问题是,即使使用https,它仍然是可能的。有不同的方法可以做到这一点——有些方法通过物理访问网络进行中继,有些则不这样做

这里的底线是,即使使用https,也有可能有人在你的应用程序和浏览器之间插入自己。除了服务器证书外,所有内容都将通过浏览器传递,并且从浏览器中看起来完全相同。入侵者将不得不发送他自己的证书,而不是真正的证书

浏览器将检测到证书存在问题-通常它将被颁发给不同的dns名称,或者更有可能不会被验证

问题就在这里:这个违规行为是如何呈现给最终用户的,最终用户会如何反应。在旧版IE中,所有问题的迹象都是状态栏右侧的一个小的坏锁图标,这是很多人都不会注意到的


这会带来多大的风险取决于环境和人员(可培训程度)用户是

大多数cookie都是限时凭据。例如,会话标识符在几个小时后过期或在浏览器窗口打开时被忘记。即使攻击者获得了对会话cookie的访问权,也不能保证他们继续访问帐户,也不能阻止原始帐户持有人访问登录。防止长期帐户泄露是在允许用户输入新密码之前要求用户输入旧密码的原因之一

包含用户名和密码的cookie如果被披露,则寿命更长。此外,许多用户在网站之间共享他们的密码。正如其他人所指出的,cookie可以通过跨网站脚本轻松披露


最后,cookie是否标有“安全”标记flag?如果不是,则主动网络攻击可以很容易地迫使浏览器泄露它,即使使用HTTPS为整个站点提供服务。

您可以使用ISAPI筛选器从更安全的源添加传入的cookie标头,而不是重写应用程序。然后,代码仍会在预期的位置看到凭据。您完全可以对于谁有权访问存储在远程用户计算机上的cookie,不作任何保证(无)。在许多情况下,用户是其工作站上的管理员。事实上,在许多情况下,用户是其工作站上所有计算机上的管理员