没有会话的PHP用户认证教程

时间:2012-02-13 02:21:51

标签: php cookies authentication

我需要为计算机安全项目的一部分构建我自己的系统而不使用php会话(只是cookie)而且我只是丢失了。我找到的所有教程都使用会话(有充分的理由)所以我想知道是否有人知道你自己的php用户身份验证教程。

3 个答案:

答案 0 :(得分:10)

你基本上可以实现像你这样的会议。

这将包括以下任务:

  • 为新用户生成随机会话ID(或登录时 - 基于确切用途......)
  • 将其保存为Cookie
  • 在服务器上的某处保存额外的会话信息以及会话ID(例如在数据库表中)
  • 在后续页面访问中检查cookie中的会话ID与Web服务器上的数据以识别用户并授予访问权限

然而,应该提到的是,基于cookie的解决方案永远不会那么好。例如,如果客户端没有启用cookie,则根本不起作用。对此可能的解决方案是,如果未启用cookie,则将会话ID作为GET参数发送给每个内部链接。

答案 1 :(得分:2)

会话会让事情变得更容易。话虽这么说,你在哪里遇到了伙伴?

要开始在PHP中使用Cookie,请查看以下内容:http://www.w3schools.com/php/php_cookies.asp

你可以

  • 按照s1lence的建议实施自己的会话处理(可能正是教授希望你做的)或
  • 通过将会话ID附加到QueryString(使其适用于非cookie浏览器)或
  • 来实现您自己的会话处理
  • 您可以将用户/密码对存储在Cookie中(这会强制您为每个请求重新验证用户)

我不推荐后者,但如果它是关于避免会话机制的话,我猜是一个选项。最后一句话,如果这与理解为什么会话很重要没什么关系,你应该真的质疑你的老师的任务..;)

答案 2 :(得分:0)

您不应该将Cookie用于此类系统,因为Cookie会存储在客户端。任何人都可以改变它。会话存储在服务器端,只有您可以更改它(如果他们具有目录访问权限,其他系统用户也可以更改它,如果您在db中存储会话,则可以更改它)。如果您非常需要使用cookie,您可以加密登录/密码可以写入cookie,但会话的使用更安全。