外掛說明
這個外掛只有一個功能,就是為未登入 WordPress 的使用者停用 WP REST API。不需要任何組態。
這個外掛僅用 22 行相當短的程式碼 (小於 2KB),因此它相當輕量化、快速、有效率。
外掛特色
- 為未登入的使用者停用 REST/JSON
- 為全部使用者停用 HTTP 回應中的 REST 標頭
- 為全部使用者停用 HTML 標頭中的 REST 連結
- 完全隨裝即用,設定後不需後續管理
防止未經授權的使用者濫用你的 WordPress 網站最快速、易用的方式
這個外掛的執行方式,完全取決於網站目前採用的 WordPress 核心程式版本。
WordPress 4.7 或更新版本
對 WordPress 4.7 或更新版本來說,除非使用者登入 WordPress,否則這個外掛會完全停用 WP REST API。
- 對已登入的使用者來說,WP REST API 會正常執行
- 對未登入/以登出的使用者來說,WP REST API 會是停用狀態
至於已登出/未登入的使用者產生 JSON/REST 要求後,他們會收到以下訊息:
rest_login_required: 僅有已驗證的使用者可以使用 REST API。
這個訊息可透過篩選器勾點 disable_wp_rest_api_error
進行自訂,請參考這篇文章的範例了解如何使用這個篩選器勾點。
較舊版本的 WordPress
對 WordPress 4.6 或更舊版本來說,這個外掛會對全部使用者停用全部 REST API 功能。
其他進一步資訊,請參考下方〈常見問題集〉區段。
隱私權
這個外掛不會收集或儲存任何使用者資料。它不會設定任何 Cookie,也不會連線至任何第三方位置,因此它不會透過任何方式侵犯使用者隱私。相反的,這個外掛可以改善使用者隱私,因為它可以保護潛在的敏感資訊不會透過 TEST API 顯示/存取。
Disable WP REST API 由具備 15 年 WordPress 開發者及書籍作者經驗的 Jeff Starr 開發及維護。
支持這個外掛的開發工作
因為喜愛 WordPress 社群,因此我開發並維護這個免費外掛。如果想要支持外掛開發工作,請贊助開發工作或購買我撰寫的書籍:
- The Tao of WordPress
- Digging into WordPress
- .htaccess made easy
- WordPress Themes In Depth
- Wizard’s SQL Recipes for WordPress
也可以透過購買以下付費 WordPress 外掛支持外掛開發:
- BBQ Pro:效能極佳的 WordPress 防火牆
- Blackhole Pro:自動封鎖惡意漫遊器
- Banhammer Pro:監控網路流量及封鎖惡意存取
- GA Google Analytics Pro:將 WordPress 網站連接至 Google Analytics
- Simple Ajax Chat Pro:沒有限制的聊天室
- USP Pro:沒有限制的網站前端功能表單
十分歡迎外部連結、轉推及按讚,謝謝大家 🙂
安裝方式
手動安裝
- 上傳外掛檔案至網站並完成啟用。
- 大功告成!不需進行任何組態。
測試方式
如需了解這個外掛是否正確執行,請登出 WordPress 並在瀏覽器中對 https://example.com/wp-json/
提出要求。請參考〈常見問題集〉以進一步了解。
如果這個外掛對網站確有幫助
如果 Disable WP REST API 對網站確有幫助,請給予 5 星評等,這對外掛的持續開發及支援會有正面的幫助,謝謝大家。
常見問題集
-
預設的拒絕存取訊息是什麼?
-
如果是已登入 WordPress 的使用者,便會顯示正常的 REST API 資料;如果使用者未登入,以下便是預設訊息:
{"code":"rest_login_required","message":"REST API restricted to authenticated users.","data":{"status":401}}
-
為什麼會有停用 RSET API 的需求?
-
這個外掛實際上只會針對未登入 WordPress 的使用者停用 REST API。以下是針對未登入的使用者停用 REST API 的幾個原因:
- 未登入的使用者可能不需要 REST API
- 停用 REST API 可以節省伺服器資源
- 停用 REST API 可以最大程度降低潛在的攻擊途徑
- 停用 REST API 可以防止內容遭到擷取及抄襲
這裡還有可供大家參考的其他原因。
-
是否還有其他可停用 REST 的外掛?
-
是的,還有 2 個可停用 REST 的外掛:
第一個外掛非常棒,它提供許多功能停用 REST API 的進階選項,而第二個外掛因為乏人使用而關閉。我 (指開發者) 撰寫我自己的停用 REST 外掛,主要原因是想要外掛輕量化、快速且有效率。如果需要更多設定及功能,請考慮採用上列第一個外掛。
-
如何確認 REST 已停用?
-
測試方式非常簡單:
- 登出 WordPress
- 使用瀏覽器對
https://example.com/wp-json/
提出要求
如果看到以下訊息,代表 REST 已停用:
rest_login_required: 僅有已驗證的使用者可以使用 REST API。
如果再次登入 WordPress 並對
https://example.com/wp-json/
提出要求,便會看到 REST 以如預期般執行。 -
這個外掛是否能停用由其他外掛新增的 REST 功能?
-
可以,但這些由其他外掛新增的 REST 功能必須使用 WP REST API 註冊 REST 端點。
-
這個外掛是否能與區塊編輯器搭配使用?
-
可以,無論使用哪一個編輯器 (傳統編輯器或區塊編輯器),這個外掛的執行方式都一樣。
-
自訂錯誤訊息的方式為何?
-
依照預設,這個外掛會對未通過身分驗證的使用者顯示「僅有已驗證的使用者可以使用 REST API」。如需依據需求自訂這個訊息,請在目前使用的佈景主題的 functions.php 中或使用自訂外掛新增以下程式碼:
function disable_wp_rest_api_error_custom($message) { return 'Customize your message here.'; // change this to whatever you want } add_filter('disable_wp_rest_api_error', 'disable_wp_rest_api_error_custom');
-
如何允許存取 Contact Form 7?
-
依據這篇討論串的說明,Contact Form 7 需要存取 REST API 才能讓聯絡表單正常執行。如果需要允許 Contact Form 7 存取 REST API,請參考這篇文章。
-
如何提問?
-
請透過這份聯絡表單提出問題或意見反應。
使用者評論
參與者及開發者
變更記錄
如果 Disable WP REST API 對網站確有幫助,請給予 5 星評等,這對外掛的持續開發及支援會有正面的幫助,謝謝大家。
2.6.4
- Tests on WordPress 6.7
Full changelog @ https://plugin-planet.com/wp/changelog/disable-wp-rest-api.txt