软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Unix下使用Apache实现用户认证

作者:未知 来源:月光软件站 加入时间:2005-5-13 月光软件站

用户认证在网络安全中是非常重要的技术之一,通常主要是为了限制非授权用户的非法访问。其实应用比较简单,比如说我一网站,域名是:www.51ww.com,那么我的首页是允许用户访问的,但是假如我的 http://www.51ww.com/admin目录是我的网站管理目录,我不希望别人访问,为了防止非法登陆和一些SQL Injection等攻击,那么我就可以使用用户认证了,别人只要打开http://www.51ww.com/admin目录或者该目录下的任何文件,都要输入登陆用户名和密码才能查看该目录下的内容,那么就起到了一个屏障的作用,很好的防止了一些非法登陆。

简单讲了下原因,那么我们就简单的说一下如何在Apache中实现该功能。(以下的平台是 FreeBSD5.3 + Apache 2.0.52)

我们要实现该功能,需要两个步骤:

1. 建立密码表

假设我们的apache是安装在/usr/local/apache2下面的,那么我们执行下面的操作:
# cd /usr/local/apache2/bin
# ./htpasswd -c admin.txt admin_login  // 在当前目录下建立一个admin.txt的密码文件,存储登陆密码,同时用户是admin_login
那么就会提示你输入密码:
New password: ********
Re-type new password: ********
Adding password for user admin_login

就证明添加成功了,并且把用户名和密码存储到了/usr/local/apache2/bin/admin.txt文件里,默认的密码是加密的,不知道是MD5加密还是SHA加密,反正是不可逆的密码。

2. 修改httpd.conf文件

修改Apache的配置文件httpd.conf文件,是为了指定那个文件需要使用该用户名和密码来访问,那么我们就在 /usr/local/apache2/conf/httpd.conf  添加如下内容:

<Directory "/usr/www/admin">
        Options MultiViews
        AllowOverride None
        AuthType Basic
        AuthName "Login User"
        AuthUserFile /usr/local/apache2/bin/admin.txt
        require user admin_login
</Directory>

上面的定义就是,我们的网站根目录是在 /usr/www下面,我们需要进行认证的目录是在 /usr/www/admin 下,进行认识证的密码文件是在 /usr/local/apache2/bin/admin.txt中,用户名是 admin_login, 同时提示的内容是 Login User。
保存httpd.conf后,重新启动Apache,那么我们现在访问 http://www.51ww.com/admin 就会弹出需要输入用户名和密码对话框。

当然,以上的用户认证不止这么简单,还要有比较复杂的应用,可以参考其他文件,比如下面这几篇:

http://5700.blogdriver.com/5700/113165.html
http://www.sd99.com/image/xiaoran/article/81.html
http://www.5ilinux.com/apache03.html

Write By heiyeluren       2005/04/08




相关文章

相关软件