设为首页 友情链接
在线留言 发表文章
加入收藏 广告联系

刺猬首页

| 专案技术 | 网络技术 | 图形图象 | 网络编程 | 网页设计 | 操作系统 | 服务器 | 技术白皮书 | 在线实验室 | 刺猬论坛 |
小说专版  | 数据库 | 设计赏析 | 存储频道 | 网络安全 | 私服架设 |  Solaris | 网站评估 | PC维护技巧 | 下载中心 | 博 客 |
专   题: | Linux | java | cisco | 防病毒 | 刀片 | SOA | iscsi | ASP.NET | SQL | Oracle |
您现在的位置: 刺猬宫 >> Linux专题 >> Linux 软件开发 >> 教程正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
Linux系统下Apache服务器…
Linux+Apache+Mysql+PHP…
增加Apache最大连接数的…
Linux上安装Apache+Php+…
新版mysql+apache+php L…
Apache配置文件里的LogL…
网吧使用的Nat+Iptables…
Linux Apache服务器系统…
Linux系统Apache用户授权…
如何测试和调试Linux的A…
  htaccess文件介绍         
htaccess文件介绍
 

.htaccess文件的作用

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 basic
authuserfile /usr/home/***/htdocs/.abcname1
authgroupfile /usr/home/***/htdocs/.abcname2
authname information

require valid-user





    其中第二行和第三行中的***可以改为个人的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文件。

echo > .abcname1
/var/www/bin/htpasswd .abcname1 abc




    abc表示要增加的用户名。输入此命令后,系统会提示输入此用户密码,这样该用户名就生效了。以后如要再增加用户,运行第二行的命令时换一个用户名即可。如果这个用户名存在,则会提示修改密码。



    4.建立允许访问的组
    组的设置方法是建立一个名为.htgroup的文本文件,内容如下:

groupname1: username1 username2 username3
groupname2: username1 username3 username4




    并在.htaccess中加上“AuthGroupFile /absolute/path/.htgroup”。以ASCⅡ模式上传所有文件后,该目录中的所有文件都会被保护起来。



    设置错误文件

    如果希望在找不到文件时不出现“找不到网页”的页面提示,而是打开另一个HTML文件,方法也很简单。首先编写一个新的页面,然后用文本编辑器打开.htaccess,在文件最后加上:ErrorDocument 404 404.html。这里,404.html是错误文件的名字,即所显示的页面;404是错误代码。一般常见的错误代码和所代表的错误原因如下:

401 Authorization failed 授权失败,即密码错误。
403 Access denied 存取错误,即不可以读取该文件。
404 File not found 找不到文件。
500 Internal Server Error
服务器内部错误,可能是Web服务器本身存在问题,也可能是编写的程序出错。






    禁止读取文件

    如果将某些内容如密码,存放在一个文件中,那么别人只需知道该文件的对应位置,就可以一目了然,这样太不安全。其实完全可以不改变其它设置,也不用将文件移到其它地方就可解决这个问题,只需在.htaccess文件中加入以下几行:


order allow,deny
deny from all




    如果系统安装的是Apache 1.3以后的版本,更可以支持regular expression的filesmatch。
order allow,deny
deny from all




    files和filesmatch表示只对符合要求的部分文件生效。“order deny,allow”表示先找出禁止(deny)的,然后去找许可的(allow)。如果将它们的顺序颠倒“order allow,deny”则表示先找出许可的,后才去找禁止的。“deny from all”则表示全部IP地址都不许可。相对地,“allow from all”表示全部都允许。可以这样设置: order allow,deny
allow from all
deny from 111.222



    deny from 111.222是指禁止所有以111.222开始的IP地址(如111.222.0.1)。除了设置IP地址外,也可以设置成hostname(如:***.com)。“Files”和“Filesmatch”的用途很多,不但可以设置deny,也可以设置个别文件的密码,如:
require user 123


require user abc




    使用.htaccess文件也会存在一些问题,比如性能。如果使用.htaccess文件,则Apache需要在每个目录中查找该文件,还必须在所有更高级的目录中查找它,另外,每次请求一个页面时,也都需要读取.htaccess文件。因此,允许使用.htaccess文件都会导致性能的下降。

    例如,对/usr/hq/htdocs中页面的请求,Apache必须查找以下文件: /.htaccess
/usr/.htaccess
/usr/hq/.htaccess
/usr/hq/htdocs/.htaccess






    总的来说,通过.htaccess来保护网站更为方便和安全。因为它不像利用程序实现密码保护时,有可能通过猜测的方法获取密码。利用.htaccess文件实现密码保护,一般是很难破解的。鉴于.htaccess方式的优缺点,读者可以根据具体的情况选择适合的方法来保证网站的安全。Linux联盟收集整理

频道声明:本频道的文章除部分特别声明禁止转载的专稿外,可以自由转载.但请务必注明出出处和原始作者 文章版权归本频道与文章作者所有.对于被频道转载文章的个人和网站,我们表示深深的谢意。

原始作者:佚名 录入时间:2007-5-12 03:58:18
信息来源:不详 投稿信箱:itqoo@126.com
教程录入:itqoo    责任编辑:itqoo 
  • 上一个教程:

  • 下一个教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    - 关于我们 - 合作伙伴 - 友情链接 - 广告刊登 - 投稿热线 - 在线留言版权声明联系方式 -
    IT公社版权所有 粤ICP备05127012号
    Copyrigh@2005-2006 itqoo.com.Inc All Rights Reserved  推荐分辨率 1024*768
    联系站长:E-Mail:itqoo@126.com     MSN:urchincc@hotmail.com    QQ:点击这里给我发消息
    特别感谢:亿太网络提供空间支持