【问题标题】:session security for different area [duplicate]不同区域的会话安全[重复]
【发布时间】:2013-04-05 04:59:13
【问题描述】:

我的网站有两个区域。一种适用于金卡会员,另一种适用于银卡会员。当用户登录时,我创建了两个会话变量;每个区域都需要两个会话变量才能访问。

Gold:session-userId 和 session-gold

银牌:session-userId 和 session-silver

这是安全的吗?如果黑客窃取或将会话白银更改为会话黄金怎么办?然后他们可以访问不同的区域,不是吗?

【问题讨论】:

标签: php security session-cookies


【解决方案1】:

黑客的安全性是一个非常广泛的领域,而且可能非常棘手。您应该始终假设黑客可以破解您的代码并获得访问权限。

因此,我将使用数据库而不是会话来确定用户权限,并且我不会使用纯会话值而是加密的值。也许你可以这样做:

$_SESSION['user_level'] = sha1($userId . "session-silver");

然后在每次需要时比较正确的哈希值。请记住,通过默默无闻来确保安全并不是一种安全的方法,因为黑客可能会窃取您的源代码。

免责声明:这个建议并不是为了防弹,而是作为对当前代码的一个小而容易的改进,而不是太复杂而无法快速实施

【讨论】:

  • 如果我们在会话中使用sha1,我们将如何查询数据?我通常使用 session id 作为 key 来查询用户数据。
  • 使用 sha1 哈希查询用户数据,将其与密钥的 sha1 进行比较。就这么简单。
【解决方案2】:

有人不能只更改 php 创建的会话,例如 can cookie。想想看,cookie 被交给他们的机器,会话存储在服务器上并在断开连接时丢失。你应该确保清理所有输入,否则你的会话开始可以被操纵

【讨论】:

  • 如果我也记得我(cookie)怎么办?
  • @chienpinwang cookie 可以修改。您将它们交给您的用户,您只需要与它们一起进行后端检查和平衡
猜你喜欢
  • 1970-01-01
  • 2015-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多