網站.htaccess文件 系統配置泄露的解決方法
.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 On
RewriteCond %{REQUEST_URI} ^/admin
RewriteCond %{HTTP_COOKIE} !SecureAdminSession=RandomStringHere
RewriteRule .* - [L,F]
保存后,只有訪問 /MyAdminFolder 才可以進入網站的真實后臺 /admin/index.php,且Session在瀏覽器關閉后清除,如果直接訪問 /admin 則會返回HTTP 403錯誤。
小提示:
1. 如果將 /MyAdminFolder 下的index.php更換為秘密文件名,且在.htaccess中關閉了文件列表顯示(Index of /),相當于再加了一道防護。
2. 如果不慎泄露了隨機字符串(本例為RandomStringHere),可以直接換一個新的,即可令之前的Session全部失效,保證敏感目錄的安全。當然,定時更換也是一個好習慣。