java防止session伪造攻击_利用session防止用户未经登录而直接访问

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

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

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

//把验证用户的合法性封装到函数

function checkUserLogin(){

//防止用户没有登录而直接进入后台管理页面

if (empty($_SESSION['loginuser'])){

header("Location:login.php?errno=1");

}

}

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

$_SESSION['loginuser']=$username;

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

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

用户的登录和注销是最常见的Web应用案例,当一个应用的客户登录了以后,其他所有的会话都得知道这个用户已经登录还很有可能得提取用户的昵称予以显示等等,所以,只有把登录成功的用户的信息放入到Session ...

Servlet 利用Session实现不重复登录

import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.It ...

flask中利用session实现用户记住密码

“记住密码”的实质,实际上就是把cookie的有效期设置的长一点,当用户没有选择记住密码时,cookie的有效期为会话结束,选择记住密码后,会根据服务器的设置延长cookie的有效期,默认是31天.在 ...

利用session完成用户登陆

package cn.itcast.cookie; import java.io.IOException; import java.io.PrintWriter; import java.util.L ...

【Web】Tomcat中利用Session识别用户的基本原理

HTTP无状态的特性与Session.Cookie的存在 HTTP有一个特性:无状态的,就是前后两个HTTP事务它们并不知道对方的信息. 而为了维护会话信息或用户信息,一般可用Cookie或Sessi ...

Web---Cookie技术(显示用户上次登录的时间、显示用户最近浏览的若干个图片(按比例缩放))

本章博客讲解: 1.Cookie基本用法演示 2.演示Cookie的访问权限 3.演示Cookie的删除 4.利用Cookie显示用户上次登录的时间 5.利用Cookie技术显示用户最近浏览的若干个图 ...

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

利用session实现与数据库链接,登录模块(在views.py) def login(request): # return HttpResponseRedirect('/') # 判断是否post方 ...

(十四)用session和过滤器方法检验用户是否登录

一.session方法 1.1 编写登录页面文件(index.html)

测试 ...

随机推荐

iOS开发-由浅至深学习block

关于block 在iOS 4.0之后,block横空出世,它本身封装了一段代码并将这段代码当做变量,通过block()的方式进行回调.这不免让我们想到在C函数中,我们可以定义一个指向函数的指针并且调用 ...

iOS:抽屉侧滑动画两种形式(1、UIView侧滑 2、ViewController侧滑)

前言: 在iOS中抽屉动画是很常用的一种技术,使用它有很炫的体验效果,为app增添特色,形式就两种,一个是UIView的侧滑,另一个就是ViewController的侧滑. 实现方式: 抽屉侧滑动画有 ...

merge into 的用法

已创建 1 行.   SQL> commit;   ----不带where子句 SQL>  merge into merge1   2     using merge2   3   on ...

array_count_values:返回数组中所有值出现的次数

$arr1 = ['a','b','c','d','e','e','a','a']; $arr = array_count_values($arr1);   echo '

'; p ...

不惧面试:HTTP协议(3) - Cookie

v博客前言 先交代下背景,写这个系列的原因是总结自己遇到的面试题以及可能遇到的题目,更重要的是,今年定的目标是掌握网络这一块的知识点,先是搞懂HTTP协议,然后是TCP/IP协议,再就是WCF如何运用 ...

js排序与重组

前几天同学发给我一个问题,思路想整理一下,也供大家参考.实际上这道题本质就是考察的是去重与排序的问题.好了闲话少说,上题. function input(req){     if(req<=10 ...

博客 first

2016.10.28 这会是一个值得纪念的日子,我将会从此刻开始,1~2天不间断的更新我再软件,编程方面的学习历程和在大学的琐事. 希望N年后看到,能够回味. a good memery....... ...

BZ4326 运输计划

Time Limit: 30 Sec Memory Limit: 128 MB Submit: 2132 Solved: 1372 Description 公元 2044 年,人类进入了宇宙纪元.L ...

用Python写了一个postgresql函数,感觉很爽

用Python写了一个postgresql函数,感觉很爽 CREATE LANGUAGE plpythonu; postgresql函数 CREATE OR REPLACE FUNCTION myfu ...

Python 基本文件操作

文件模式 'r' 读模式 'w' 写模式 (清除掉旧有数据并重新开始) 'a' 追加模式 'b' 二进制模式 '+' 读/写模式 注意: 'b'   : 二进制模式 可添加到其他模式中使用 '+'  ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值