Php 有没有可能;海盗;会话变量(我不想知道如何使用)

Php 有没有可能;海盗;会话变量(我不想知道如何使用),php,session,security,session-variables,Php,Session,Security,Session Variables,我目前正在用php做一个网站,我们使用一个会话变量来存储每个用户的权限级别 例如,如果你们中的任何一个人访问该网站,就会自动获得一个值为“member”的会话变量 我想问的是:攻击者是否有可能在网站上修改会话变量“admin”而不是“member”的值 我不是问如何,只是如果可能的话,如果可能,攻击者需要什么样的特殊访问(例如:访问代码,…) 我有另一种解决方案,那就是用一个将随时间而过期的令牌替换权限值 第二种解决方案的实施时间更长 谢谢你的帮助 根据您的描述,我假设您没有将权限存储在cook

我目前正在用php做一个网站,我们使用一个会话变量来存储每个用户的权限级别

例如,如果你们中的任何一个人访问该网站,就会自动获得一个值为“member”的会话变量

我想问的是:攻击者是否有可能在网站上修改会话变量“admin”而不是“member”的值

我不是问如何,只是如果可能的话,如果可能,攻击者需要什么样的特殊访问(例如:访问代码,…)

我有另一种解决方案,那就是用一个将随时间而过期的令牌替换权限值

第二种解决方案的实施时间更长


谢谢你的帮助

根据您的描述,我假设您没有将权限存储在cookie中。因此,他们获得访问权限的唯一方法是猜测/强制使用管理员会话id或使用一些跨站点脚本攻击。如果会话id足够长,第一种方法将很难实现。

会话变量应该是安全的,因为会话存储在服务器上。但是,为了将特定客户端与特定会话相关联,通常会设置包含会话ID的cookie,攻击者可以尝试通过咀嚼其会话ID cookie(通过暴力或以某种方式捕获其他人的cookie)来访问其他用户的会话。

否,除非:

  • 攻击者可以访问会话变量的存储(通常是服务器的文件系统,但也可能是数据库)
  • 更具特权的用户的攻击者
  • 攻击者成功修复了更具特权的用户的会话(请参阅攻击)

这取决于您存储会话的方式。如果它在URL中,则是。如果是在cookie中,那么可能是这样。

除非你的应用程序中存在安全漏洞,否则有人不能只启动和更改会话变量——这些变量存储在服务器上,客户端永远无法直接访问它们


但是,他们可以做的是通过转到URL更改会话ID,如。滥用的可能性有两方面:(1)如果他们碰巧知道某个登录用户的会话ID,会话ID会让他们冒充该用户,让他们拥有该用户的所有访问权限;(2)如果他们可以诱使某人访问附加了会话ID的URL,并且该人登录,他们现在知道该用户的会话ID(因为他们提供了该ID!),我们回到(1)。

更高的风险来自攻击者窃取活动会话,您可以在此处找到:


我从来没有使用过cookie之类的东西。谢谢你的快速回答@Lobsterm是否在查询字符串中显式传递会话ID?否则,不管你意识到与否,你都在使用cookies。你为什么不想知道如何使用?为了防止人们这样做,了解事情是如何进行的是至关重要的。这并不是说我们有一个思想警察会因为你知道如何利用事物而对你进行罚款。@Matti他可能是想先发制人地说“我们在这里不帮助黑客”每当有人问起这类问题时,就会出现否决票question@MichaelOzek先生和我回答了那些被否决的问题,我的回答也被否决了。-1你想知道这是否可能,但你不想知道怎么做?安全的全部意义在于检验一个假设。那么这是否意味着你会接受一个完全的BS答案,甚至不去尝试测试它是否正确?这在深层次上是错误的。