> php教程 > php手册 > Auth权限认证暴力来袭,有图有码有种子,绝对暴力!

Auth权限认证暴力来袭,有图有码有种子,绝对暴力!

WBOY
풀어 주다: 2016-06-07 11:41:33
원래의
1203명이 탐색했습니다.

Auth权限认证暴力来袭,有图有码有种子,绝对暴力!
auth的相关介绍说明,官方网站上已经有很多相关文章了,我就不再重复啰嗦了.在这里,我直接上demo以及简要的说下注意事项及一点点建议.废话不多说,直接进入主题.

一、auth认证原理
auth类通过认证用户uid所在的角色组是否拥有对应的权限.如图所示
Auth权限认证暴力来袭,有图有码有种子,绝对暴力!
二、准备工作

1、建表(主要对新增的字段或表作说明,如没有改变过的表,这里不做说明)

1) tk_auth_group 用户组
CREATE TABLE `tk_auth_group` (<br>               `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,<br>               `title` char(100) NOT NULL DEFAULT '',<br>               `status` tinyint(1) NOT NULL DEFAULT '1',<br>               `rules` char(80) NOT NULL DEFAULT '',<br>               `describe` char(50) NOT NULL DEFAULT '',    #新增,对用户组作简单的说明<br>               PRIMARY KEY (`id`)<br>             ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 2) tk_auth_rule 规则表
CREATE TABLE `tk_auth_rule` (<br>               `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,<br>               `name` char(80) NOT NULL DEFAULT '',<br>               `title` char(20) NOT NULL DEFAULT '',<br>               `type` tinyint(1) NOT NULL DEFAULT '1',<br>               `status` tinyint(1) NOT NULL DEFAULT '1',<br>               `condition` char(100) NOT NULL DEFAULT '',<br>               `mid` tinyint(3) unsigned NOT NULL DEFAULT '0',    #新增,外键,和tk_modules的id对应,对规则分类处理,方便管理<br>               PRIMARY KEY (`id`),<br>               UNIQUE KEY `name` (`name`)<br>             ) ENGINE=MyISAM DEFAULT CHARSET=utf8; 3) tk_modules 模块表
CREATE TABLE `tk_modules` (<br>               `id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT,    <br>               `moduleName` varchar(20) NOT NULL DEFAULT '',    #模块名称<br>               PRIMARY KEY (`id`)<br>             ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 4) tk_members 用户表
CREATE TABLE `tk_members` (<br>               `uid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,<br>               `username` varchar(20) NOT NULL DEFAULT '',<br>               `password` char(32) NOT NULL DEFAULT '',<br>               `score` mediumint(8) unsigned NOT NULL,    #用户积分<br>               PRIMARY KEY (`uid`)<br>             ) ENGINE=MyISAM  DEFAULT CHARSET=utf8; 2、配置文件

1) 数据库项配置(本人采用的是pdo方式,如果你的环境不支持pdo,则手动改为其它方式)
//数据库配置<br>             //pdo类型,采用dsn方式连接<br>             'DB_TYPE'=>'pdo',<br>             'DB_USER'=>'root',<br>             'DB_PWD'=>'123456',<br>             'DB_PREFIX'=>'tk_',<br>             'DB_PORT'=>'3306',<br>             'DB_DSN'=>'mysql:host=localhost;dbname=auth;charset=utf8', 2) 角色组设置,设置超级管理员组,直接跳过认证
 //超级管理员id,拥有全部权限,只要用户uid在这个角色组里的,就跳出认证.可以设置多个值,如array('1','2','3')<br>             'ADMINISTRATOR'=>array('1'), 3、注意事项

1)运行环境:要求php版本5.3以上

2)对原auth类作了小小的改动.原文件155行左右
$user_groups = M()<br>                 ->table($this->_config['AUTH_GROUP_ACCESS'] . ' a')<br>                 ->where("a.uid='$uid' and g.status='1'")<br>                 ->join($this->_config['AUTH_GROUP']." g on a.group_id=g.id")<br>                 ->field('id,rules')->select(); //原field方法的参数为field('rules'),增加id主要是获取用户组的id,便于验证超级管理员.<br>             $groups[$uid]=$user_groups?:array(); 建议官方在下次更新能添加id,或增加一个参数,便于用户灵活设置

三、安装说明
使用说明请看压缩包的readme.md文件.另外代码我都作了详细的说明,大家一看就懂.下面上几张暴力图.免得有人说:You say a JB without pictures!
Auth权限认证暴力来袭,有图有码有种子,绝对暴力!
Auth权限认证暴力来袭,有图有码有种子,绝对暴力!
Auth权限认证暴力来袭,有图有码有种子,绝对暴力!
Auth权限认证暴力来袭,有图有码有种子,绝对暴力!
Auth权限认证暴力来袭,有图有码有种子,绝对暴力!

四、结语
本demo提供给大家互相学习,希望通过它对auth认证有一个全面的了解.其实基于tp使用auth权限认证没有那么复杂,那么难.希望通过能在此基础上扩展出再多的功能来.

补充:
用户密码都是admin

附件 auth.zip ( 1.26 MB 下载:3194 次 )

AD:真正免费,域名+虚机+企业邮箱=0元

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿