1

我帮助维护一个销售给大约 100 个客户的网站。我们非常重视安全性,我们有一个多步骤的登录过程。如果您之前已经登录并选择获取 cookie,则可以跳过该过程的一部分。当您再次登录并且仍然拥有该 cookie 时,将跳过该步骤。当然,cookie 中的值是随机的,对于每个用户来说都是不同的。

我的老板想让 cookie 无法复制到另一台计算机。当然,我已经解释过这是不可能的,但他仍然坚持要求用户代理保持不变。

“然后我们可以证明我们有一个特定于用户硬件和软件的‘强化’cookie。”

当然,我已经解释过,欺骗用户代理比欺骗 cookie 值要容易很多倍,并将其比作在挂锁上贴创可贴。更不用说复制 cookie 的任何机会也可以让您复制用户代理。他不在乎。

需要相同的用户代理并不困扰我,但我有一些完整性,并且在处理一些关于其安全性的谎言出售的东西时遇到了问题。

我是专业人士而不是咕噜声。当我知道会被宣传为支持更高的重量时,我不会设计支撑一个重量的桥。

我讲道理吗?

4

2 回答 2

1

建议一个替代方案,因为 cookie并非旨在提供安全性:

*

活跃的网络攻击者可以覆盖来自不安全通道的安全 cookie,从而破坏其完整性

传输层加密(例如 HTTPS 中使用的加密)不足以防止网络攻击者获取或更改受害者的 cookie,因为 cookie 协议本身存在各种漏洞。

使用 cookie 对用户进行身份验证的服务器可能会遭受安全漏洞,因为一些用户代理允许远程方从用户代理发出 HTTP 请求(例如,通过 HTTP 重定向或 HTML 表单)。在发出这些请求时,即使远程方不知道 cookie 的内容,用户代理也会附加 cookie,这可能会让远程方在粗心的服务器上行使权限。

Cookie 不为同级域(及其子域)提供完整性保证。例如,考虑 foo.example.com 和 bar.example.com。foo.example.com 服务器可以设置一个域属性为“example.com”的 cookie(可能会覆盖由 bar.example.com 设置的现有“example.com”cookie),并且用户代理会将该 cookie 包含在对 bar.example.com 的 HTTP 请求。在最坏的情况下,bar.example.com 将无法将此 cookie 与它自己设置的 cookie 区分开来。foo.example.com 服务器可能能够利用此功能对 bar.example.com 发起攻击。

Cookie 依赖于域名系统 (DNS) 的安全性。如果 DNS 部分或全部受到威胁,cookie 协议可能无法提供应用程序所需的安全属性。

参考

于 2012-07-23T22:16:28.467 回答
0

具有涉及服务器端“秘密”的签名并使用用户代理作为盐的一部分的 cookie 比没有用户代理作为盐的一部分的 cookie 更难欺骗。这是无可争辩的。首先,弄清楚盐是如何产生的需要时间——很多“攻击者”会立即被劝阻。

是的,但它并不更安全......

你的老板有一个目标;能够告诉他的客户 cookie 已“硬化”。你不应该假设你的老板不理解其中的含义。

事实上; 它不会在任何一个方向上影响您的应用程序的安全性。然而,这将导致 cookie从一台机器移动到另一台机器稍微困难一些,并且如果客户端更新他的浏览器或 flash 版本或以其他方式更改他的用户代理,它将使 cookie 停止工作。

结论:

如果其他一切都相同,我认为 cookie 中的用户代理盐比没有用户代理盐好一点点。我想你可以比你花在问这个问题上的时间更快地实现这个东西。

于 2014-02-14T13:35:41.803 回答