用htaccess加强网站的安全设置

2014年08月28日 11:17 by:佚名

通过.htaccess设置可以:实现文件夹密码保护、重定向、自定义错误页面、改变你的文件扩展名、URL重写、封禁IP、禁止目录列表、禁止目录下运行某类型文件、修改默认目录文件等一系列功能.

用脚本编辑器, 比如notepad++, vim ,editplus等新建一个 (.htaccess) 文件, 注意这个文件在linux下默认是隐藏的, 你用ftp需要设置显示隐藏文件才可以看到的哦.

用.htaccess 自定义错误页的方法

系统默认的错误页面太丑啦, 自己设计一个吧, 可以是php等动态文件格式的哦.

通过在.htaccess文件里加入下面的文字将其变成自定义页面:

  1. ErrorDocument 404 /err/404.php
  2. ErrorDocument 503 /err/503.php

不管是404/403/400/503等其它错误都可以自己设计指定一个页面哦.

用.htaccess禁止显示目录列表

有些时候,你的目录里没有默认的index文件,当有人在浏览器地址栏访问该目录,目录下所有的文件都会显示出来,这会给你的网站留下安全隐患。

为避免这种情况(而不必创建一堆的新index文件),你可以在你的.htaccess加入下面的代码来阻止目录列表的显示:

  1. Options -Indexes

用.htaccess阻止特定的IP地址

想允许某些特定IP的用户可以访问你的网站(例如:只允许使用特定ISP的用户进入某个目录),或者想封禁某些特定的IP地址(例如:将低级用户隔离于你的信息版面外)。

现在网上的大多数用户都使用动态IP地址,这个方法一般很少用。

使用以下命令封禁一个IP地址:

  1. deny from 127.0.0.10

这里的127.0.0.10是被封禁的IP地址

如果封禁整个网段的地址, 可以这样写 

  1. deny from 210.10.56.

则将封禁210.10.56.0~210.10.56.255的所有IP地址。

用.htaccess只允许某个IP地址访问网站:

  1. allow from 127.0.0.10

当然也可以想上面一样运行一个ip段访问.

用.htaccess阻止所有人访问目录

  1. deny from all

这个命令并不影响脚本程序使用这个目录下的文档。

用.htaccess 替换默认的首页index文件

如果想更改默认的首页文件(index.htm等)。使用.htaccess可以指定任何的页面作为默认的首页! 

下面的代码设置 index.php / index.php3 / messagebrd.pl / index.html / index.htm同时指定了这些页面为默认的首页, 从左到右, 如果存在就访问.

  1. DirectoryIndex index.php index.php3 messagebrd.pl index.html index.htm

利用.htaccess重定向

重定向文件的例子:

Redirect /location/from/root/file.html /new/file/2.html

haccess重定向整个网站的目录

假如你的网站上有一个名为 /olddirectory 的目录,并且你已经 新建了一个 /newdirectory 文档,你可以将旧目录下所有的文件做一次重定向而不必一一声明:

Redirect /olddirectory /newdirectory

利用.htaccess 保护密码

.htaccess具有完美的安全性(即访问者必须知晓密码才可以访问目录,并且绝无“后门”可走)。

1. 密码保护的.htaccess文件

利用.htaccess将一个目录加上密码保护分两个步骤。

在你的.htaccess文档里加上几行代码,再将.htaccess文档放进你要保护的目录下:

  1. AuthName "Section Name"
  2. AuthType Basic
  3. AuthUserFile /full/path/to/.htpasswd
  4. Require valid-user

根据你的网站情况修改上述内容,如用被保护部分的名字“Section Name”。/full/parth/to/.htpasswd则应该替换为指向.htpasswd文件(后面详述该文档)的完整服务器路径。如果你不知道你网站空间的完整路径,请询问一下你的系统管理员。

2. 密码保护的.htpasswd文件

目录的密码保护比.htaccess的其他功能要麻烦些,因为你必须同时创建一个包含用户名和密码的文档,用于访问你的网站,相关信息(默认)位于一个名为.htpasswd的文档里。像.htaccess一样,.htpasswd也是一个没有文件名且具有8位扩展名的文档,可以放置在你网站里的任何地方(此时密码应加密),但建议你将其保存在网站Web根目录外,这样通过网络就无法访问到它了。

3. 输入用户名和密码

创建好.htpasswd文档后(可以通过文字编辑器创建),下一步是输入用于访问网站的用户名和密码,应为:

  1. username:password

“password”的位置应该是加密过的密码。你可以通过几种方法来得到加密过的密码:一是使用一个网上提供的permade脚本或自己写一个;另一个很不错的username/password加密服务是通过KxS网站,这里允许你输入用户名及密码,然后生成正确格式的密码。

对于多用户,你只需要在.htpasswd文档中新增同样格式的一行即可。另外还有一些免费的脚本程序可以方便地管理.htpasswd文档,可以自动新增/移除用户等。

4. 访问网站

当你试图访问被.htaccess密码保护的目录时,你的浏览器会弹出标准的username/password对话窗口。如果你不喜欢这种方式,有些脚本程序可以允许你在页面内嵌入username/password输入框来进行认证,你也可以在浏览器的URL框内以以下方式输入用户名和密码(未加密的):

  1. http://username:password@www.website.com/directory/

更多htaccess的设置及相关问题可以访问: http://s.lao8.org/cse/search?s=10976145417263288973&q=htaccess&source=lao8.org