.httacces文件的密碼保護和防止盜鏈的實現方法
2024-09-01 13:46:27
供稿:網友
1.密碼保護的.htaccess文件
盡管有各種各樣的.htaccess用法,但至今最流行的也可能是最有用的做法是將其用于網站目錄可靠的密碼保護。盡管JavaScrip等也能做到,但只有.htaccess具有完美的安全性(即訪問者必須知曉密碼才可以訪問目錄,并且絕無“后門”可走)。
利用.htaccess將一個目錄加上密碼保護分兩個步驟。第一步是在你的.htaccess文檔里加上適當的幾行代碼,再將.htaccess文檔放進你要保護的目錄下:
AuthName “Section Name”
AuthType Basic
AuthUserFile /full/path/to/.htpasswd
Require valid-user
你可能需要根據你的網站情況修改一下上述內容中的一些部分,如用被保護部分的名字”Members Area”,替換掉“Section Name”。
/full/parth/to/.htpasswd則應該替換為指向.htpasswd文件(后面詳述該文檔)的完整服務器路徑。如果你不知道你網站空間的完整路徑,請詢問一下你的系統管理員。
2.密碼保護的.htpasswd文件
目錄的密碼保護比.htaccess的其他功能要麻煩些,因為你必須同時創建一個包含用戶名和密碼的文檔,用于訪問你的網站,相關信息(默認)位于一個名為.htpasswd的文檔里。像.htaccess一樣,.htpasswd也是一個沒有文件名且具有8位擴展名的文檔,可以放置在你網站里的任何地方(此時密碼應加密),但建議你將其保存在網站Web根目錄外,這樣通過網絡就無法訪問到它了。1516501417
在使用.htaccess來設置目錄的密碼保護時,它包含了密碼文件的路徑。從安全考慮,有必要把.htaccess也保護起來,不讓別人看到其中的內容。雖然可以用其他方式做到這點,比如文檔的權限。不過,.htaccess本身也能做到,只需加入如下的指令:1516501417
order allow,deny
deny from all
3.配置 .htaccess 輸入用戶名和密碼
要利用.htaccess對某個目錄下的文檔設定訪問用戶和對應的密碼,首先要做的是生成一個.htpasswd的文本文檔,例如:
forge:y4E7Ec8e7EwV
這里密碼經過加密,用戶可以自己找些工具將密碼加密成.htaccess支持的編碼。該文檔最好不要放在www目錄下,建議放在www根目錄文檔之外,這樣更為安全些。
有了授權用戶文檔,可以在.htaccess中加入如下指令了:
AuthUserFile .htpasswd的服務器目錄
AuthGroupFile /dev/null (需要授權訪問的目錄)
AuthName EnterPassword
AuthType Basic (授權類型)
require user wsabstract (允許訪問的用戶,如果希望表中所有用戶都允許,可以使用 require valid-user)
注,括號部分為學習時候自己添加的注釋
拒絕來自某個IP的訪問
如果我不想某個政府部門訪問到我的站點的內容,那可以通過.htaccess中加入該部門的IP而將它們拒絕在外。
例如:
order allow,deny
deny from 210.10.56.32
deny from 219.5.45.
allow from all
第二行拒絕某個IP,第三行拒絕某個IP段,也就是219.5.45.0~219.2.45.255
想要拒絕所有人?用deny from all好了。不止用IP,也可以用域名來設定。
創建好.htpasswd文檔后(可以通過文字編輯器創建),下一步是輸入用于訪問網站的用戶名和密碼,應為:
username:password
“password”的位置應該是加密過的密碼。你可以通過幾種方法來得到加密過的密碼:一是使用一個網上提供的permade腳本或自己寫一個;另一個很不錯的username/password加密服務是通過KxS網站,這里允許你輸入用戶名及密碼,然后生成正確格式的密碼。
對于多用戶,你只需要在.htpasswd文檔中新增同樣格式的一行即可。另外還有一些免費的腳本程序可以方便地管理.htpasswd文檔,可以自動新增/移除用戶等。
4.配置.htaccess 直接訪問加密網站
當你試圖訪問被.htaccess密碼保護的目錄時,你的瀏覽器會彈出標準的username/password對話窗口。如果你不喜歡這種方式,有些腳本程序可以允許你在頁面內嵌入username/password輸入框來進行認證,你也可以在瀏覽器的URL框內以以下方式輸入用戶名和密碼(未加密的):
:password@
5.利用 .htaccess 防止盜鏈
如果不喜歡別人在他們的網頁上連接自己的圖片、文檔的話,也可以通過htaccess的指令來做到。
所需要的指令如下:
RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^(www.)?w3sky.com/.*$ [NC]
RewriteRule .(gif &line;jpg)$ - [F]
如果覺得讓別人的頁面開個天窗不好看,那可以用一張圖片來代替:
RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^(www.)?w3sky.com/.*$ [NC]
RewriteRule .(gif &line;jpg)$ 替代圖片文件名 [R,L]