未受权访问,在平时的测试中,应该是比较容易的一个漏洞,只须要经过御剑等等软件来进行扫描,就可能获得一个未受权访问漏洞。php
可是,它是什么缘由形成的,请听我娓(xia)娓(bi)道(bi)来。sql
如下全部代码都是我本身写的,可能有不美观,代码错误等等问题,但愿你们能够指正。数据库
以下,这是一个登录框,login.phpcookie
在平时的测试中,咱们每每能够去尝试直接访问某些关键的文件,若是它的验证代码有问题,咱们将能够直接访问到正常状况没法访问的内容session
这里咱们直接访问index.php页面函数
将直接能够访问到咱们只有在登录状况下,才能访问到的内容测试
接下来,咱们看一下代码是如何写的ui
PS:在正常的项目中,可能不是这样写的,可是这里为了方便你们理解,就将全部代码都简写了,原理都是同样的orm
login.phpblog
logins.php
index.php
PS:包含的fun.php为数据库操做函数
相信你们都能看懂这部分代码
login.php为登录页面的代码,仅有一个form表单,在这里咱们能够看到,它是将内容都传给了logins.php
logins.php内容为接收传过来的帐号密码,先判断帐号密码是否都填写了,而后带入数据库进行查询,若是存在,设置session并返回登录成功,并跳转到session页面;不然将返回登录失败。
接下来,主要是关注index.php文件的代码,这里才是咱们形成未受权访问的最主要的部分
这里我将查询时的uid默认设置为1,方便咱们操做
这里能够很明显的知道,它没有进行任何的检测,直接进行了sql查询,而后就能够在页面中查看到内容了
由于在登录成功的时候,设置了session,咱们这里就能够直接在开头加一个判断session值的,若是session不存在,就直接跳出,不进行sql查询。
修改后代码以下
此时的效果为
就能够防止了未受权访问
这里仍是要提一下,在写代码的时候必定要判断session值,而不能判断cookie,众所周知cookie值是存放在客户端,是能够伪造的。
经典案例,请阅读--》传销站经典案例之篡改cookie进后台
本文由博客一文多发平台 OpenWrite 发布!