利用session防止用户未经登录而直接访问

Posted NICE哥哥

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了利用session防止用户未经登录而直接访问相关的知识,希望对你有一定的参考价值。

在编写项目的时候,突然想如果按常理出牌,不首先进入登录界面而直接访问网页内容,可不可以呢?如此一来便尝试了一下,整的可以直接进入管理员页面,获取完全的管理权限。于是在网上查看了一下解决方案,学习了一下。

那么如何识别用户是否合法呢?就需要每次点开新的页面之前检查一下,但是如果每点开一个页面就需要登陆一回未免太不人性化了,这里就可以使用session来保存用户信息了。

首先编写一个函数,因为可能有许多页面需要检查,如果每次都重新写代码难免造成代码冗余。

//把验证用户的合法性封装到函数
function checkUserLogin(){
       //防止用户没有登录而直接进入后台管理页面
        if (empty($_SESSION[‘loginuser‘])){
        header("Location:login.php?errno=1");
          }
}

在登录检查页面的代码中就保存一下用户的信息(可能是用户ID/用户名/。。。可以识别用户存在的即可)

$_SESSION[‘loginuser‘]=$username;

 

如此,一个简单的验证功能就完成了

以上是关于利用session防止用户未经登录而直接访问的主要内容,如果未能解决你的问题,请参考以下文章

通达OA前台任意用户登录漏洞复现

通达OA前台任意用户登录漏洞复现

asp.net怎么利用session对象使用户在登录页面实现登录之后,然后首页显示用户名

PHP 登录和 $_SESSION

安全测试

8Django实战第8天:session和cookie自动登录机制