.htaccess保护网站敏感目录的改进方法;很多人都在使用.htaccess保护网站的敏感目录(如:网站后台),方法无非是HTTP Basic Auth和IP白名单。HTTP Basic Auth验证方式过于简单,IP白名单对于动态IP用户不方便,这里推荐一种使用Session+Cookie验证的方法,不仅可以有效解决此类问题,同时还可修改该敏感目录名。
新建一个名称较为复杂的文件夹,本例中使用:MyAdminFolder,在其下新建index.php,输入以下内容(注:RandomStringHere 和 /admin/index.php 需要根据实际情况修改):
<?php $SecretCode="RandomStringHere"; setcookie("SecureAdminSession",$SecretCode,0,"/"); header("Location: /admin/index.php");?>
并将以下内容添加到.htaccess中(注:RandomStringHere 和 /admin 需要根据实际情况修改):
RewriteEngine OnRewriteCond %{REQUEST_URI} ^/adminRewriteCond %{HTTP_COOKIE} !SecureAdminSession=RandomStringHereRewriteRule .* - [L,F]
保存后,只有访问 /MyAdminFolder 才可以进入网站的真实后台 /admin/index.php,且Session在浏览器关闭后清除,如果直接访问 /admin 则会返回HTTP 403错误。
小提示:
1. 如果将 /MyAdminFolder 下的index.php更换为秘密文件名,且在.htaccess中关闭了文件列表显示(Index of /),相当于再加了一道防护。
2. 如果不慎泄露了随机字符串(本例为RandomStringHere),可以直接换一个新的,即可令之前的Session全部失效,保证敏感目录的安全。当然,定时更换也是一个好习惯。
提示:
随机字符串生成,随机密码生成工具 https://www.wjpc.cn/tool/String.html