使用URL查询字符串在PHP中进行身份验证

3 php session query-string

通常当我设计一个允许用户登录的站点时,我从数据库创建用户信息的会话变量,并确保在站点的每个页面上至少有一个会话变量可用,否则用户将被重定向到像这样的登录页面:

if(!isset($_SESSION['username']))
{
  header("Location:login.php");
}
Run Code Online (Sandbox Code Playgroud)

但后来我一直在思考,为什么不使用查询字符串,而不是使用会话变量来验证用户.我的想法是创建基于一些因素,唯一的字符串,如date(month, year, day)access time(day, hour)或者ip address,也许hash它使用md5这样的URL可能看起来像这样

://mysite.com/dashboard?auth=12jsdnnau819wiskj3jdnck23ksj12j3.

所以现在我可以轻松地注销用户,如果他没有访问该网站超过一个小时或超过一天.但我不知道这是不是一个好主意,这就是我在这里寻求更好的方法的建议.谢谢大家.

Que*_*tin 5

因为网址:

  • 容易泄漏
  • 获取书签
  • 当用户打开新选项卡并导航回站点时,请勿自动携带数据

并且因为没有什么能阻止您在会话中存储相同的数据并使用它来轻松注销用户,因此它甚至不会添加您突出显示的一个好处.