无Cookie会话是否存在安全风险?

时间:2010-04-15 13:31:35

标签: asp.net security session encryption cryptography

http://msdn.microsoft.com/en-us/library/aa479314.aspx

您有一个用户从Cyber​​cafe中的计算机成功登录,Hacker H能够嗅探网络并获取用户的sessionID,可以使用sessionId并充当来自其他计算机的用户吗?

H可以输入http://folder/(session id)/CreditCardInformation.aspx来了解用户的信用卡号吗?

4 个答案:

答案 0 :(得分:4)

那很大程度上取决于很多事情。

基本上,是的,如果你知道一个URL,你可以看到背后的东西。一旦他/她拥有会话ID,黑客就能够做任何他想做的事。

如果黑客有权访问http流,也可以拦截基于cookie的会话ID。

然而,还有一些额外的证券可以实施。例如:

  • (会话ID)应仅在短期内有效
  • (会话ID)仅对特定IP(创建会话的IP)有效
  • (会话ID)仅对某个用户代理/ flash版本/ ..签名
  • 有效 可以为每个新的页面视图更改
  • (会话ID),弃用之前的session_id

处理信用卡信息时,

  1. 始终使用https。它更安全,因为数据至少在浏览器和到服务器的路由上的第一个https代理之间加密
  2. 您需要自己操纵信用卡信息的情况很少见。现在处理信用卡的网站越来越被迫遵守PCI/DSS规则,这可能是一个很大的负担。您可能应该与银行解决方案签订合同,其中信用卡将在其网页上提交,或者使用PayPal。例如。
  3. 除非您拥有必要的安全解决方案并定期进行外部审核,否则切勿将信用卡信息保留在数据库中。
  4. 以下link可能会为您提供有关会话ID最佳做法的进一步见解。

    我希望这会对你有所帮助 杰罗姆·瓦格纳

答案 1 :(得分:1)

如果黑客获得了您的会话ID,他可以在该网站上做任何您可以做的事情。

为防止出现这种情况,我们始终通过https提供身份验证表单和所有后续页面。除此之外,https在中间攻击中消除(或至少减少)人。

答案 2 :(得分:1)

我有点担心没有人列出这两次攻击:

1) Session Fixation 黑客访问您的网站并获取其中一个会话网址。然后,他向可能的用户发送了许多欺骗性电子邮件,使其看起来好像来自您的网站。电子邮件要求登录,攻击者会给他们一个会话URL。然后,攻击者定期检查会话URL以查看是否有人进行了身份验证。如果他们有,那么攻击成功,黑客只是偷了一个帐户。解决此问题的方法是在创建时将用户的ip地址存储在会话变量中,并针对每个请求进行检查。如果您只通过Cookie传递会话ID,则攻击者无法在另一个浏览器上为他无法控制的域设置cookie值,因此无法执行此攻击。

2)打印机: 有时人们会从网站上打印一个页面。曾经看过从网站打印过的页面的非常底部?好吧,通常页面的 URL 就在那里。如果您打印一个页面,然后将其交给某人,就好像您刚刚写下了您的用户名/密码并将其交给了他们。

不惜一切代价避免使用会话网址。

整个会话使用SSL。如果不这样做,那么你将泄露会话ID(如果你使用的是cookie,那就是这样!)。这种ssl的使用明确要求A3“破解身份验证和会话管理”OWASP top 10 for 2010

答案 3 :(得分:0)

总之,是的,出于其他海报所描述的原因。

当然,如果您使用未加密的HTTP连接来传递信用卡信息,无论您输入什么会话信息,他都可以直接嗅到该信用卡信息。无论您使用何种会话方法,都需要实现ssl / https。