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

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

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

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

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

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

$_SESSION[‘loginuser‘]=$username;

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

时间: 2024-08-10 17:18:29

利用session防止用户未经登录而直接访问的相关文章

利用Session完成用户的登录和注销

用户的登录和注销是最常见的Web应用案例,当一个应用的客户登录了以后,其他所有的会话都得知道这个用户已经登录还很有可能得提取用户的昵称予以显示等等,所以,只有把登录成功的用户的信息放入到Session中才能够办到使所有的Servlet都能访问到用户的登录状态, 第一是登录的界面,是HTML的一个表单,非常的简单 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.or

利用session完成用户登陆

1 package cn.itcast.cookie; 2 3 import java.io.IOException; 4 import java.io.PrintWriter; 5 import java.util.List; 6 7 import javax.servlet.ServletException; 8 import javax.servlet.http.Cookie; 9 import javax.servlet.http.HttpServlet; 10 import javax

ThinkPHP中利用SESSION实现用户登录验证的方法

用户登上一个主页无非有这么两种状态,一种是类似于游客的身份登录,另一种是曾经已经登陆过的身份即经过服务器验证过的身份登录. 针对这两种登录,主要说一下: 我们在使用thinkphp的时候,首先,他是不提高登录验证功能的,仅仅是在路径方面做的相对比较安全,因为我们如果不对登录身份进行充足的验证,用户就完全可以去试着登录你的后台管理,那么这是非常可怕的,所以,首先要明白一个非常重要的业务逻辑. 如果按照正常的输入用户名密码的方式进行登录,在跳转之前我们就应该写入session数据,然后用数据进行登录

JavaEE之--------利用过滤器实现用户自动登录,安全登录,取消自动登录黑用户禁止登录

在我们生活中,对于账户的自动登录已经很常见了,所以利用过滤器实现这个功能 主要介绍用户的自动登录和取消自动登录,以及实现一天自动登录或者n天实现自动登录,当用户ip被加入到黑名单之后,直接利用过滤器返回一个警告页面. 过滤器的功能很是强大,我们只需要在写好的前台后servlet之后进行添加就可以实现这个功能 Ps:这个仅仅只是一个演示而已,里面的访问数据库的部分,自己随意模拟了下,主要是突出实现自动登录的功能. 前台代码: 前台代码是成功与否都在这个页面显示.用到的技术:jstl标签的应用,se

python利用django实现简单的登录和注册,并利用session实现了链接数据库

利用session实现与数据库链接,登录模块(在views.py) def login(request): # return HttpResponseRedirect('/') # 判断是否post方式,如果是则进行下面的表单处理 if request.method == 'POST': rs = Users.objects.filter(email=request.POST.get('email'), #django的filter方法是从数据库的取得匹配的结果,返回一个对象列表,如果记录不存在

Asp.Net使用加密cookie代替session验证用户登录状态 源码分享

首先 session 和 cache 拥有各自的优势而存在.  他们的优劣就不在这里讨论了. 本实例仅存储用户id于用户名,对于多级权限的架构,可以自行修改增加权限字段   本实例采用vs2010编写,vb和c#的代码都是经过测试的:一些童鞋说代码有问题的 注意下    什么? 你还在用vs2008 vs2005? 请自行重载 带有 optional 标致的函数   童鞋们提到的 密码修改后 要失效的问题 当时没有想到 个人认为 大致方向可以> >1. 每个用户生成1个xml 里面保存随机的几

PHP学习笔记:使用session来存储用户的登录信息

session可以用来存储多种类型的数据,因此具有很多的用途,常用来存储用户的登录信息,购物车数据,或者一些临时使用的暂存数据等. 用户在登录成功以后,通常可以将用户的信息存储在session中,一般的会单独的将一些重要的字段单独存储,然后所有的用户信息独立存储. $_SESSION['uid'] = $userinfo['uid']; $_SESSION['userinfo'] = $userinfo; 一般来说,登录信息既可以存储在sessioin中,也可以存储在cookie中,他们之间的差

用户未登录或Session超时时重定向到登录页,不那么简单

在网站开发中,我们经常有这样的场景出现: 情景1:对未登录的用户或没有权限的用户,当其想访问某个受限网页时,系统要能够自动转到登录页面.   情景2:对于用session保存用户状态的情况还有这样一种需求,当用户的session已超时时,用户再想执行操作时,也要将其转到登录页面.   在asp.net中,要实现上述的功能容易吗?有人会说:"这太容易了,可以通过下面两种方式实现".   方法一:直接调用asp.net中的response.redirect方法实现 response.red

用Cookie和Session实现用户登录 函数

由于网页是一种无状态的连接程序,你无法得知用户的浏览状态,必须通过Cookie或Session记录用户的有关信息. Cookie: 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制. PHP透明地支持HTTP Cookie.从客户端发送的Cookie都会被PHP5 包括进$_COOKIE的全局数组. Session: Session储存于服务端(默认以文件形式存储session),根据客户端提供的sessionId来得到用户的文件,取得变量的值,session id可以通过客户端的Coo