主頁 網站架設 Wordpress教學 10大優化 WordPre...

10大優化 WordPress 網站安全的 .Htaccess 設定技巧

1174
0

什麼是.htaccess?

.htaccess 是一個設定檔,讓你可以控制該路徑下的檔案及資料夾,以及所有子目錄。這個檔案名稱是由 hypertext access 而來,能為大多數的伺服器環境使用。該檔案能強化網站安全。數以百萬的 WordPress 用戶都會利用它來保護網站免於垃圾郵件發送者、黑客的威脅。

.htaccess 檔案的樣子大概是這樣,一般在網站的Cpanel中放置網頁的Folder內。.htaccess 程式碼是包在 #BEGIN WordPress 及 #END WordPress 裡。WordPress 可以更新這個標籤裡的程式碼。為了畫分程式碼以容易辨析,你必須把要新增的程式碼片段放置於你的 .htaccess 檔案的頂部或底部(在 #BEGIN WordPress 之前或 #END WordPress 之後)。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

如果 .htaccess 不存在,你可以自己建立一個然後將它上傳。你需要做的只有建立一個空白的文字檔(.txt),將它儲存為 .htaccess 然後上傳到網站的根目錄。請確認在檔案的開頭有一個點!

如何使用 .Htaccess優化WordPress 網站安全?

1. 保護存取 .htaccess

首先由於.htaccess 擁有你整個網站的控制權,以下的程式碼將讓黑客無法存取你的 .htaccess 檔,只需要透過 FTP 來修改 .htaccess 檔案(或是控制台(Cpanel)的檔案管理)。

<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

 

2. 保護 /Wp-Content/

wp-content 資料夾是 WordPress 相當重要的一部分,因為內裏包含了你的佈景主題、外掛、上傳的媒體檔案(圖片、影片)及快取檔案。

Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|js)$">
Allow from all
</Files>

你可以將 .htaccess 檔案獨立上傳到 wp-content 主目錄,例如 www.example.com/wp-content/。這麼做只會允許 XML、CSS、JPG、JPEG、PNG、GIF 和 JavaScript 被上傳到媒體資料夾,其餘的檔案類型將被拒絕。

3. 保護 WP-Config.php

Wp-config.php這個檔案裡包含資料庫的登入資訊,以及其他的系統設定。因此,用.htaccess是禁止任何人訪問它。

<files wp-config.php>
order allow,deny
deny from all
</files>

4. 保護 Include-Only 檔案

某些檔案是絕不用讓使用者存取的。你可以加入以下程式碼,來阻擋使用者存取這些檔案。

# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

 

5. 限制存取 WordPress 控制台

WordPress 控制台經常成為黑客的目標。如果他們獲取了存取該區域的權限,後果相當嚴重,為確保 WordPress 控制台更加安全,建立一個 .htaccess 檔案並加入以下程式碼:

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 22.34.56.78
</Limit>

22.34.56.78 更改為你的 IP 位址(你可以在 What is My IP? 找到你的 IP Address),然後將它上傳到網站的 /wp-admin/ 路徑下,例如 www.example.com/wp-admin/ 。

這設定令只有你能夠存取 WordPress 控制台,其他人將會被阻擋在外。

如果有多個管理員怎麼辦?

其他的管理員或作者的 IP 可以加在後面,你可以在 allow from 後面加入其他 IP,不同的 IP 間使用半形逗號來區隔,例如:

allow from 22.34.56.78, 98.746.54.32, 99.82.73.64

 

6. 封鎖某人進入你的網站

如果你知道某個來者不善的 IP 位址,你可以使用以下的程式碼將它拒於網站訪問之外。

<Limit GET POST>
order allow,deny
deny from 123.456.78.9
deny from 987.654.32.1
allow from all
</Limit>

7. 禁止瀏覽目錄

讓未經授權的使用者瀏覽目錄下的檔案或資料夾是相當危險。如要禁止訪問你網站的目錄,只要在你的 .htaccess 加入以下程式碼:

# disable directory browsing
Options All -Indexes

 

8. 允許瀏覽器快取

當啟動瀏覽器快取功能後,將允許使用者從你的網站儲存元件,而無須重新下載。

例如當圖片上傳到網站後,很少會再次更新。瀏覽器快取能讓訪客直接讀取儲存在他們電腦裡的圖片,而不用從你的伺服器下載,節省頻寬、也提升了頁面載入速度(Page Speed)。

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
 ## EXPIRES CACHING ##

 

你也會有興趣的.....  【Google Analytics】免費獲取網站流量資料!如何在網站上裝Google Analytics (圖文教學)

9. 重新導向一個網址/網站

301 重新導向讓你可以通知搜尋引擎該鏈結已經重新移到新的路徑。它可以被用來重新導向一個網址、資料夾,甚至是整個網站。

例如變更網域名稱、變更固定網址結構時經常用到301 redirect將網站重置。這也是提升網站SEO的其中一個重要技巧。

只要加入以下程式碼便可將網址重新導向某個路徑:

Redirect 301 /originpage.html http://www.example.com/newpage.html
Redirect 301 /originfolder/page2.html /folder4/page5.html
Redirect 301 / http://www.newexample.com/

 

10. 禁止直接連結圖片

直接連結的意思是某人直接取用你的圖片鏈結,然後將它分享到其他網頁上。直接連結可能對你的網站帶來負面影響,包括使你的網站變慢,也會讓你的頻寬費用增加。你可以禁止除了你的網站外的網站直接連結圖片,將以下程式碼加入即可。請確認將以下網址更改為你的網址。

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?example.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?examwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://i.imgur.com/abcd.png [NC,R,L]

當其他人試圖從其他網址瀏覽你的圖片時,他們將會看到禁止圖片,而這圖片可以變更為任何你想要的圖(在上面的最後一行設定圖片路徑)。

注意事項!!!

.htaccess 是 WordPress 裡特別嚴格的檔案,只要其中任何一個字符出錯,檔案就會出現錯誤。當錯誤發生時,整個網站的運作會停止,所以必須確保輸入 .htaccess 的程式碼沒有問題為最重要。

在開始前,建議備份一下你當前使用的 .htaccess 檔案。若更新了 .htaccess 檔案令網站不能正常運作,立即回復、還原 .htaccess備份。

 

參考資料 WordPress Htaccess Tips And Tricks, 原作者 Kevin Muldoon。