如何为网站提供保护,防止非法用户登入呢?通常可以采用身份认证方式。身份认证是防止非法用户使用资源的有效手段,也是管理注册用户的有效方法。现在很多网站都使用身份认证来管理用户资源,对用户的访问权限进行严格地限制。传统的身份认证方法是通过检验用户的注册名、口令,来决定是否允许用户使用资源,但这种认证方法在某些情况下作用并不十分有效。特别是在Linux平台下的Apache服务器,完全可以用Linux的方法来实现密码验证和保护。
Linux下最常见的密码保护方法是利用.htaccess文件,即目录配置实现密码保护,这也是.htaccess文件的功能之一。这种方法可以使没有授权的浏览者不能进入.htaccess文件所设置的限制区域。一般地,使用JavaScript技术进行设置的密码太简单,很容易就被破解,造成了不安全。而使用.htaccess文件保护目录比使用其它程序(Java/HTML/ASP/CGI)更为有效和安全。更重要的是,使用.htaccess的方式进行设置,不需要编写程序就可以实现,具体操作比较容易。
下面就来介绍和演示Linux+Apache下密码保护的方法,全面实现网站保护。
什么是.htaccess文件
.htaccess文件是Apache服务器上的一个设置文件。它是一个文本文件,可以使用任何文本编辑器进行编写。.htaccess文件提供了针对目录改变配置的方法,即通过在一个特定的文档目录中放置一个包含一个或多个指令的文件(.htaccess文件),以作用于此目录及其所有子目录。.htaccess的功能包括设置网页密码、设置发生错误时出现的文件、改变首页的文件名(如index.html)、禁止读取文件名、重新导向文件、加上MIME类别、禁止列目录下的文件等。
在需要针对目录改变服务器的配置,而对服务器系统没有root权限时,应该使用.htaccess文件。如果服务器管理员不愿意频繁修改配置, 则可以允许用户通过.htaccess文件自己修改配置,尤其是ISP在一台机器上提供多个用户站点,而又希望用户可以自己改变配置的情况下,一般会开放部分.htaccess的功能给使用者自行设置。
注意,.htaccess是一个完整的文件名,不是***.htaccess或其它格式(当然也有管理员把其设置成其它名字,但一般都是使用.htaccess)。另外,上传.htaccess文件时,必须使用ASCⅡ模式,并使用chmod命令改变权限为:644(RW_R__R__)。每一个放置.htaccess的目录和其子目录都会被.htaccess影响。例如,在/abc/目录下放置了一个.htaccess文件,那么/abc/和/abc/def/内所有的文件都会被它影响,但/index.html不会被它影响,这一点是很重要的。
实现密码保护
1.建立.htpasswd文件
首先在要设置存取控制的目录(如htdocs)下建立一个文件,文件名可以自行设定,一般服务器都会设置为.htpasswd,该文件是不能由HTTP读取的。.htpasswd文件中的每一行代表一个使用者,使用者的名字及经过加密的密码以冒号:分隔。
2..htaccess文件实现保护
.htaccess文件的内容如下:
authtype basicauthuserfile /usr/home/***/htdocs/.abcname1authgroupfile /usr/home/***/htdocs/.abcname2authname information<limit get postrequire valid-user</limit
其中第二行和第三行中的***可以改为个人的FTP登录名。.abcname1和.abcname2可以是任意的文件名,如.htpasswd、.htpass,但不能是.htaccess。将.htaccess上传到要进行密码保护的目录(如htdocs)中。
.htaccess文件最后的“require”告诉服务器哪些用户可以进入。require valid-user是指只要是.htpasswd中的任何一个都可以进入。也可以指定名单上的某人或某几人可以通过,使用require user username或require user username1 username2 username3。还可以指定某组人可以通过,使用require group groupname。
3.增加新的许可用户
进入htdocs目录,在命令行状态输入以下命令生成.abcname1文件。