会话和Cookie安全

时间:2014-06-28 17:28:59

标签: php session cookies

因此会话存储在服务器端,这意味着客户端无法编辑它们。 在客户端,cookie被存储并保存id以找到正确的会话。

现在我的问题是。随机用户可以编辑自己的cookie,然后输入Eg。管理员的会话?

3 个答案:

答案 0 :(得分:2)

在大多数情况下,会话中的数据本身对用户篡改是安全的,因为它只在服务器上进行操作(假设服务器本身是安全的)。因此,没有理由将会话中存储的数据视为"脏"至于需要清理/验证它。

无论是通过cookie还是通过URL参数传播,会话本身都不具有内在的安全性。它可以通过会话劫持攻击来模拟。有许多常见的技术可以防止这种情况发生,包括:

  • 仅使用通过SSL传输的安全cookie
  • 使用足够长的会话ID(默认情况下,现代语言中的大多数默认实现都使用此功能)。这使得更难以猜测"在有效的会话ID值并最小化会话ID的冲突。
  • 在申请登录后重新生成会话ID
  • 检查辅助数据(IP地址,浏览器用户代理等)以查看会话期间是否存在可能指示劫持尝试的更改。可能最好在这里使用多种因素的组合(比如IP地址和用户代理的变化,因为移动设备的IP地址可以并且确实会发生变化)。
  • 活动会话ID轮换(即每次加载页面时轮换会话ID)

答案 1 :(得分:1)

是的,恶意用户可以修改他们的会话ID(在他们的本地cookie中)并冒充其他用户来劫持他们的会话。毫不奇怪,这被称为Session Hijacking

但攻击者极不可能猜出正确的会话ID。他们需要采用技术来窃取受害者的会话ID。

默认PHP会话ID cookie的示例:

PHPSESSID example

答案 2 :(得分:0)

一些一般规则:

  • 您无法再控制离开服务器的任何数据。
  • 只要您的用户有权访问该资源,您就可以编辑任何进入您计算机的数据。
  • 您经常可以阅读通过本地网络传输的任何数据。如果它没有加密,你甚至可以理解它。

结果:

  • Cookie必须被视为用户输入。
  • 用户可以随时编辑自己的Cookie。
  • 如果网站没有使用HTTPS,黑客可以在开放的wifi网络中轻松窃取您的cookie。

关于Cookie存在两个主要危险:

  • 不知道存储admin=1并实际使用该值验证为admin
  • 的开发人员
  • 会话固定(被盗的cookie)