用 .htaccess 保护网站敏感目录的改进方法

很多人都在使用 .htaccess 保护网站的敏感目录(如:网站后台),方法无非是使用 HTTP 基本认证(HTTP Basic Auth)和 IP 白名单。HTTP 基本认证方式过于简单,IP 白名单对于动态 IP 用户不方便。因此,这里推荐一种使用 Cookie 验证的方法,不仅可以有效解决上面提到的问题,同时还可“修改”敏感目录名。

首先说明一下,此方法仅限于在支持 PHP 语言与 .htaccess 的主机上使用。没问题吧?那现在让我们很快地进入操作环节吧——

第一步,建立一个名称较为复杂的目录。这个目录将来是我们要访问的目录哦,所以最好自己能记得住又难被猜测,那么在本例中使用 MyAdminFolder。注意:部分主机对网址中的字母大小写敏感,这个同样适用于下一步。

第二步,在上述目录中建立 PHP 文件。通常使用 index.php,因为这可以避免在目录后面输入文件名。如果使用其他的文件名(如 IwantEnter.php),虽然麻烦但是可以提高安全性哦。

第三步,为刚刚建立的 PHP 文件写入内容。将以下内容扔进去,记得要根据中文提示修改相应信息哦!在此推荐一个随机字符生成器,只生成含大小写字母和数字的随机串就行了,否则可能会用不了。

<?php
   $SecretCode="RandomStringHere"; //请把 RandomStringHere 改成自己的随机字符串
   setcookie("SecureAdminSession",$SecretCode,0,"/");
   header("Location: /admin/"); //请把 /admin/ 你要进入网页的地址(如后台网址),可以使用绝对地址
?>

第四步,修改 .htaccess 文件内容。此举是为了保护原目录。请将以下内容扔进去。注意修改 /admin/ 与 RandomStringHere,务必保证与上面所修改内容保持一致

#保护敏感目录 开始
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/admin/
RewriteCond %{HTTP_COOKIE} !SecureAdminSession=RandomStringHere
RewriteRule .* - [L,F]
#保护敏感目录 结束

第五步,完成,测试。按照本例中的数据,那么结果是只有访问 /MyAdminFolder/ 才可以进入网站的真实后台 /admin/,且使用的 Cookie 将在浏览器关闭后失效,如果直接访问 /admin/ 则会返回 HTTP 403 错误。

操作步骤完,最后给点提示。如果不慎泄露了随机字符串(本例为 RandomStringHere),可以直接换一个新的,即可令之前的 Cookie 全部失效,保证敏感目录的安全。当然,定时更换也是一个好习惯。另一个,因为在浏览器地址栏输入网址通常会被记录,所以我建议关键时刻一定打开无痕浏览哦!

那么,用了这个方法以后,其他的使用 .htaccess 的安全措施是不是可以考虑丢掉了呢?

较大一部分参考自常青藤

若无特别说明,本文系原创,遵循 署名-非商业性使用 3.0 (CC BY-NC 3.0) 协议,转载文章请注明来自【闪星空间】,或链接上原文地址:http://shansing.com/read/295/

15 条评论

  1. 哇,好高科技啊。不过一般博客来说只需要屏蔽蜘蛛访问即可。

    1. 当然对于 Typecho 来说可以很容易地修改后台目录名
  2. wp-admin老是被人频繁访问,看来我也要改一下了..

    1. 嗯,没错,这个做法是极好的

  3. 何必这么麻烦 ,直接重命名 ,原路径装个后门不就得了 ~
    http://qxin.info/admin 敬请测试

    1. 就是因为有些程序的管理目录不能重命名,才有了本文
      话说你那个地址怕怕,该不会里面有鬼吧?

  4. 唠言只语,提交不了评论,一提交就是503

    1. 感谢反馈!是因为那个东东搬家出了点问题啦,正在修复中……

  5. GW GW

    飘过

  6. 该关联文件行不

  7. cao cao

    修改完之后访问iwantenter.php会跳到wp-admin,但是直接访问wp-admin也没有问题,请问应该如何解决?

    1. 主机支持 .htaccess 吗?如果支持的话,可能是 .htaccess 没有配置对,检查一下有没有修改目录和对应的 Cookie 值。

      1. cao cao

        解决了,apache配置文件的问题,改完就可以了。

发表评论»

NO SPAMS! 不要发垃圾评论哦!

表情