我帮助维护一个销售给大约100个客户的网站。我们非常重视安全性,我们有一个多步登录过程。如果您之前已经登录并选择获取cookie,则可以跳过该过程的一部分。当您再次登录并仍然拥有该cookie时,将跳过该步骤。当然,cookie中的值是随机的,每个用户都不同。
我的老板想要将cookie复制到另一台计算机上。当然,我已经解释过这是不可能的,但他仍然坚持要求用户代理保持不变。
“然后我们可以记录我们有一个特定于用户硬件和软件的”强化“cookie。”
当然,我已经解释过,欺骗用户代理比欺骗cookie价值要容易许多倍,并将其与挂锁上的创可贴进行比较。更不用说你复制cookie的任何机会也允许你复制用户代理。他不在乎。
要求使用相同的用户代理并不会让我感到困扰,但我有一些完整性,并且在出售有关其安全性的谎言时会遇到问题。
我是专业人士而不是咕噜咕噜。我不会设计一个支撑一个重量的桥梁,因为我知道它会被宣传为支撑更高的重量。
我合理吗?
答案 0 :(得分:1)
建议alternative,因为Cookie为not intended以提供安全性:
活跃的网络攻击者可以从不安全的渠道覆盖安全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协议可能无法提供应用程序所需的安全属性。
<强>参考强>
答案 1 :(得分:0)
具有签名涉及服务器端“秘密”并使用用户代理作为盐的一部分的cookie将比没有用户代理作为盐的一部分的cookie更难以欺骗。这是无可争辩的。首先,需要时间来弄清楚盐是如何产生的 - 并且会立即阻止许多“攻击者”。
是的,但它不是更安全......
你的老板有一个目标;能够告诉他的顾客饼干是“硬化的”。你不应该认为你的老板不理解其含义。
事实是;它不会影响您的应用程序安全性。然而,如果客户端更新其浏览器或Flash版本或更改其他用户代理,则会导致cookie从一台机器移动到另一台机器稍微更难以运行方式。
结论:
如果其他条件相同,我认为cookie中的用户代理盐比没有用户代理盐更好,只需少量。我想你可以比你提出这个问题的时间更快地实现这个东西。