All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
PHP安全基础,注射基础经验技巧汇总篇_php资料_编程技术
.NET2.0抓取网页全部链接_[Asp.Net教程]
HTML语言剖析(十一)排版标记_[Html教程]_0
Asp实现获取xml中的内容_[XML教程]
PHP多文件上传类_[PHP教程]
web.config配置文件示例_.net资料_编程技术
符合web标准的媒体播放器代码_[Html教程]
用Php模拟asp.net的页面模型_[PHP教程]
详解:——如何将图片储存在数据库里_php资料_编程技术
取得文件扩展名方法_[PHP教程]
Reading number is top 10 pictures
9.3阅兵全景图3-外国方阵梯队和坦克方阵梯队
刘亦菲写真集2
如果我是导演...
这才是真正的人体艺术1
为什么别人说你是疯子
50个至今影响世界的德国发明
Photographed the passion of the clients and prostitutes in the sex trade picture2
HongMenYan premiere XinLiangGong clairvoyant outfit PK YiFeiLiu1
Black and white also sexy--YanLiu1
The terra-cotta warriors3
Download software ranking
Desire a peach blossom
Tram sex maniac 2 (H) rar bag12
C#COM编程指南
Boxer vs Yellow3
网络管理员第三版
Unix video tutorial6
Visual C++界面编程技术
Unix video tutorial13
JSP+Ajax Web development typical examples
Tram sex maniac 2 (H) rar bag1
aaa published in(发表于) 2013/12/27 20:06:30 Edit(编辑)
用Apache与MySQL整合实现基本身份认证_php资料_编程技术

用Apache与MySQL整合实现基本身份认证_php资料_编程技术

用Apache与MySQL整合实现基本身份认证_php资料_编程技术-你的首页-uuhomepage.com
Apache来实现基本的用户身份认证有很多种方式,比如最常见的txt文本和DBM格式,但在负载很重的server上-这些都不是理想的方法,文本的形式是基于平面的,性能很差而且也不安全;DBM好些但在千或万级用户时还是力不从心,于是用database做后台存储则是很好的方法-比平面搜索更有效而且安全,用户口令以DES加密形式存储在数据库的表中。
这种实现要归功于Apache本身出色的模块化结构--以及开放的DSO方式,可以使开发人员完成大量的第三方模块,并扩充Apache的功能。我在本文中只写了用Mysql做后台存储--此外还可用Postgresql,Oracle等来完成,原理一样-都是用各自的模块。
让我们开始吧--先去modules.apache.org找到mod_auth_mysql--会有两个我们要用DSO那个-事实上直接去ftp://ftp.kcilink.com/pub/下一个mod_auth_mysql.c.gz就行-好-把它解开是一个mod_auth_mysql.c-好-我们用apxs来生成DSO模块(前题是你用DSO模式编译的Apache)--apxs -c -i -a -L/usr/local/lib/mysql -lmysqlclient >-lm mod_auth_mysql.c即可--这里注意一定要这么写---L/usr/local/lib/mysql是mysql的客户库位置,我假定mysql是用的缺省安装)---如果不加在起动Apache时会报错-无法装载此模块。
好了看看httpd.conf中应该有LoadModule mysql_auth_module libexec/mod_auth_mysql.so和AddModule mod_auth_mysql.c这两句了,重起Apache也不应该有问题。
然后我们进入mysql,mysql>create database auth;
mysql>use auth;
mysql> create table mysql_auth (
-> user_name char(20) not null,
-> user_passwd char(25),
-> groups char(25),
-> primary key (username) );
注意字段名一定是user_name和user_passwd这个。再插入几条记录:


mysql> insert into mysql_auth values
('xingfei2',encrypt("abcde"),'xingfei');
Query OK, 1 row affected (0.00 sec)
mysql> insert into mysql_auth values
('xingfei',encrypt("abcde"),'xingfei');
Query OK, 1 row affected (0.00 sec)
这里abcde是口令-用encrypt函数来进行加密,用的是DES算法-这是和unix的password等同的算法-而不是mysql本身加密的password()函数。
最后在要保护的目录里建一个.htaccess(别忘了把AllowOverride all打开)内容如下:


authname "xingfei"
authtype basic
AuthMySQLHost localhost ---mysql主机名
authmysqluser root ---mysql用户
authmysqlpassword abc ---mysql用户的口令
AuthMySQLDB auth ---用户所用的库-也就是我们建的库
AuthMySQLUserTable mysql_auth ---所用的表
AuthMySQLGroupField groups ---用户组的字段名
require group xingfei
require user xingfei
可以把用户都放在一个组里-只要是这个组里的用户即可通过认证,也可require单个或多个用户。






添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.