強(qiáng)化Wordpress安全的.Htaccess設(shè)定的11個技巧

字號:


    .htaccess 是一個設(shè)定檔,讓你可以控制該路徑下的檔案及資料夾,以及所有子目錄。這個檔案名稱是由 hypertext access 而來,能為大多數(shù)的服務(wù)器環(huán)境使用。
    對于許多 WordPress 使用者來說,他們第一次看到 .htaccess 檔案應(yīng)該是在自定他們網(wǎng)站的固定網(wǎng)址時。為了使用更美觀的鏈結(jié),而不是預(yù)設(shè)的鏈結(jié)格式(例如:
    而不是 ),我們必須將以下程式碼加入 .htaccess 檔案:
    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress
    如果 .htaccess 不存在,你可以自己建立一個然后將它上傳。你需要做的只有建立一個空白的文字檔,將它儲存為 .htaccess 然后上傳到網(wǎng)站的根目錄。請確認(rèn)在檔案的開頭有一個點(diǎn),是不可漏掉的。
    你也必須確認(rèn)你的 .htaccess 檔案是服務(wù)器可寫入的,WordPress 才能將適當(dāng)?shù)某淌酱a加入你的 .htaccess 。WordPress.org 建議把檔案權(quán)限設(shè)定為 644 。
    .htaccess 檔案不僅用于固定網(wǎng)址,該檔案也能強(qiáng)化網(wǎng)站安全。數(shù)以百萬的 WordPress 用戶利用它來保護(hù)網(wǎng)站免于垃圾郵件發(fā)送者、黑客和其他已知的威脅。
    在本文裡,我會分享一些用于 .htaccess 的程式碼片段,可以強(qiáng)化你的網(wǎng)站安全。相信你會找到一些對你有幫助的程式碼。
    你可能也注意到上面固定網(wǎng)址的 .htaccess 程式碼是包覆于 #BEGIN WordPress 及 #END WordPress 裡。WordPress 可以更新這個標(biāo)簽裡的程式碼,你必須把要新增的程式碼片段放置于你的 .htaccess
    檔案的頂部或底部(在 #BEGIN WordPress 之前或 #END WordPress 之后)。
    請注意…
    .htaccess 是 WordPress 裡個性倔強(qiáng)的檔案,只要其中任何一個字符出錯,檔案就會出現(xiàn)錯誤。當(dāng)錯誤發(fā)生時,它通常會影響到整個網(wǎng)站的運(yùn)作,最重要的是你必須確保輸入 .htaccess 的程式碼沒有
    問題。
    在開始前,備份一下你當(dāng)前使用的 .htaccess 檔案吧!將它保存到你電腦裡安全的位置。如果可以,也能在云端硬碟備份一份。
    無論何時更新了你服務(wù)器上的 .htaccess 檔案,記得回到網(wǎng)站重新整理一下,看看網(wǎng)站是不是還能正常運(yùn)作。不要跳過這個步驟,因?yàn)榇_認(rèn)網(wǎng)站運(yùn)作正常是至關(guān)重要的一個步驟。如果你的網(wǎng)站給你一個
    白畫面,立即回復(fù)、還原 .htaccess 修改前的上個步驟。
    如果你無法還原你的備份,那麼將服務(wù)器上的 .htaccess 刪除,然后建立一個空白的 .htaccess 檔案并將它上傳。這將協(xié)助你使你的網(wǎng)站回復(fù)連線;當(dāng)你的網(wǎng)站出現(xiàn)問題,這顯然是最重要的一步。
    1. 保護(hù) .htaccess
    既然 .htaccess 擁有你整個網(wǎng)站的控制權(quán),保護(hù)它遠(yuǎn)離不相關(guān)人士就顯得很重要。以下的程式碼將讓黑客無法存取你的 .htaccess 檔,只需要透過 FTP 來修改 .htaccess 檔案(或是控制臺的檔案管
    理)。
    order allow,deny
    deny from all
    satisfy all
    2. 保護(hù) WP-Config.php
    另一個重要的檔案是 wp-config.php。這個檔案裡包含資料庫的登入資訊,以及其他的系統(tǒng)設(shè)定。因此,明確的作法是禁止任何人訪問它。
    order allow,deny
    deny from all
    3. 保護(hù) /Wp-Content/
    wp-content 資料夾也是 WordPress 相當(dāng)重要的一部分,在這個資料夾裡包含了你的佈景主題、外掛、上傳的媒體檔案(圖片、影片)及快取檔案。
    有鑒于此,這通常也是黑客下手的目標(biāo)。當(dāng)垃圾郵件發(fā)送者試圖破壞你的老網(wǎng)站,他必須將郵件程式傳到你的上傳資料夾。然后使用你的服務(wù)器來寄送垃圾郵件;這麼做會使你的服務(wù)器被列入垃圾郵件名單。
    你可以透過創(chuàng)建一個獨(dú)立的 .htaccess 檔案來解決類似問題:
    Order deny,allow
    Deny from all
    Allow from all
    你必須將 .htaccess 檔案獨(dú)立上傳到 wp-content 主目錄,例如 。這麼做只會允許 XML、CSS、JPG、JPEG、PNG、GIF 和 JavaScript 被上傳到媒體資料夾,其餘的
    檔案類型將被拒絕。
    4. 保護(hù) Include-Only 檔案
    某些檔案是絕不用讓使用者存取的。你可以加入以下程式碼,來阻擋使用者存取這些檔案:
    # Block the include-only files.
    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]
    5. 限制存取 WordPress 控制臺
    另一個黑客覬覦的目標(biāo)是 WordPress 控制臺。如果他們獲取了存取該區(qū)域的權(quán)限,他們就可以在你的網(wǎng)站上為所欲為。
    確保 WordPress 控制臺更加安全,建立一個 .htaccess 檔案并加入以下程式碼:
    # Limit logins and admin by IP
    order deny,allow
    deny from all
    allow from 12.34.56.78
    請務(wù)必將 12.34.56.78 更改為你的 IP 位址(你可以在 What is My IP? 找到你的 IP Address),然后將它上傳到網(wǎng)站的 /wp-admin/ 路徑下,例如 。
    只有你能夠存取 WordPress 控制臺,其他人將會被阻擋在外。
    其他的管理員或作者的 IP 可以加在后面,你可以在 allow from 后面加入其他 IP,不同的 IP 間使用半形逗號來區(qū)隔,例如:
    allow from 12.34.56.78, 98.76.54.32, 19.82.73.64
    6. 禁止某人進(jìn)入你的網(wǎng)站
    如果你知道某個來者不善的 IP 位址,你可以使用以下的程式碼將它拒于網(wǎng)站之外。舉例來說,你可以封鎖某些留下垃圾留言或是嘗試存取你 WordPress 控制臺的使用者。
    order allow,deny
    deny from 123.456.78.9
    deny from 987.654.32.1
    allow from all
    7. 將使用者傳送到維護(hù)頁面
    一些維護(hù)外掛像是 Ultimate Maintenance Mode 和 Mainteance 相當(dāng)實(shí)用,當(dāng)你在維護(hù)網(wǎng)站時,可以顯示一個暫時的頁面給使用者,或是在你更新網(wǎng)站時。
    不幸的是,維護(hù)外掛只有在你的網(wǎng)站運(yùn)作正常時才起得了作用。
    如果你想未雨稠繆,我建議你建立一個基本的 .html 頁面,將它命名為 maintenance.html 來提醒使用者目前網(wǎng)站遭遇一些問題,但會在短時間內(nèi)恢復(fù)連線。當(dāng)你的網(wǎng)站掛掉時,只要將以下程式碼加入
    你的 .htaccess 檔案,就能將所有流量引導(dǎo)至維護(hù)畫面。
    RewriteEngine on
    RewriteCond REQUEST_URI} !/maintenance.html$
    RewriteCond REMOTE_ADDR} !^123.123.123.123
    RewriteRule $ /maintenance.html [R=302,L]
    你必須要為你的網(wǎng)站來自定上方程式碼。變更上方的檔案名稱,來符合你的維護(hù)頁面路徑,你也必須加入你的 IP 位址,以便在維護(hù)狀態(tài)時不會被引導(dǎo)至維護(hù)頁面(讓你可以繼續(xù)調(diào)整網(wǎng)站),以上代碼
    使用 302 轉(zhuǎn)址確保維護(hù)頁面不會被搜尋引擎索引。
    8. 禁止瀏覽目錄
    讓未經(jīng)授權(quán)的使用者瀏覽目錄下的檔案或資料夾是相當(dāng)危險的一件事情。如要禁止訪問你網(wǎng)站的目錄,只要在你的 .htaccess 加入以下程式碼即可:
    # disable directory browsing
    Options All -Indexes
    9. 允許瀏覽器快取
    當(dāng)啟動瀏覽器快取功能后,將允許使用者從你的網(wǎng)站儲存元件,而無須重新下載。
    它用于設(shè)計元素,例如 CSS 樣式表和其它媒體內(nèi)容,例如圖片。這是一個實(shí)用的技巧,因?yàn)楫?dāng)圖片上傳到網(wǎng)站后,很少會再次更新。瀏覽器快取能讓訪客直接讀取儲存在他們電腦裡的圖片,而不用從你
    的服務(wù)器下載,節(jié)省頻寬、也提升了頁面載入速度。
    啟用瀏覽器快取,你需要做的就是把以下程式碼加入 .htaccess 檔案:
    ## EXPIRES CACHING ##
    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"
    ## EXPIRES CACHING ##
    10. 重新導(dǎo)向一個網(wǎng)址
    301 重新導(dǎo)向讓你可以通知搜尋引擎該鏈結(jié)已經(jīng)重新移到新的路徑。它可以被用來重新導(dǎo)向一個網(wǎng)址、資料夾,甚至是一整個網(wǎng)站。
    因此,它常被用于網(wǎng)址發(fā)生變化時,例如變更網(wǎng)域名稱、變更固定網(wǎng)址結(jié)構(gòu),或是變更頁面名稱(例如將頁面名稱從 my-news 變成 mygreatnews)。
    要重新導(dǎo)向某個路徑,你需要做的就是加入以下程式碼:
    Redirect 301 /oldpage.html
    Redirect 301 /oldfolder/page2.html /folder3/page7.html
    Redirect 301 /
    11. 禁止直接連結(jié)圖片
    直接連結(jié)的意思是某人直接取用你的圖片鏈結(jié),然后將它分享到其他網(wǎng)頁上。這常發(fā)生在討論區(qū),但大多數(shù)的網(wǎng)站擁有者仍然會這麼做。直接連結(jié)可能對你的網(wǎng)站帶來負(fù)面影響,包括使你的網(wǎng)站變慢,
    也會讓你的頻寬費(fèi)用增加。
    你可以禁止除了你的網(wǎng)站外的網(wǎng)站直接連結(jié)圖片,將以下程式碼加入即可。請確認(rèn)將以下網(wǎng)址更改為你的網(wǎng)址。
    RewriteEngine on
    RewriteCond HTTP_REFERER} !^$
    RewriteCond HTTP_REFERER} !^http(s)?://([NC]
    RewriteCond HTTP_REFERER} !^http(s)?://([NC]
    RewriteRule .(jpg|jpeg|png|gif)$ [NC,R,L]
    當(dāng)其他人試圖從其他網(wǎng)址瀏覽你的圖片時,他們將會看到禁止圖片,而這圖片可以變更為任何你想要的圖(在上面的最后一行設(shè)定圖片路徑)。
    禁止直接連結(jié)可能導(dǎo)致一些 RSS 閱讀器無法顯示你 RSS Feed 裡的圖片。
    希望以上的 .htaccess 檔案技巧對你有所助益。如你所見,它是一個可以完成許多工作的設(shè)定檔。