如何在 WordPress 中禁用 REST API
已發表: 2023-05-28您想禁用 Rest API 但不知道如何操作嗎? 不用擔心; 我們已經為您準備好了。
在本文中,我們將解釋如何在 WordPress 中禁用 Rest API,以及為什麼它是您網站安全的重要步驟。
您是否知道 Rest API 是黑客用來未經授權訪問網站的最常見方式之一?
據領先的網站安全公司 Sucuri 稱,2020 年 73% 的被黑 WordPress 網站是由於易受攻擊的插件和主題,其中 Rest API 是主要漏洞之一。
如果您想知道 Rest API 是什麼以及為什麼禁用它對您網站的安全至關重要,請繼續閱讀。
在本文中,我們將提供有關如何在 WordPress 中禁用 Rest API 的分步指南,並解釋為什麼這樣做可以防止黑客利用您網站的漏洞。
什麼是 WordPress Rest API?
WordPress Rest API 是一個接口,允許開發人員使用 WordPress 平台的數據構建 Web 和移動應用程序。
它可以通過生成 HTTP 請求從遠程位置獲取、更新和刪除內容。 雖然它提供了許多好處,但出於安全原因或其他目的,某些用戶可能希望禁用它。
為什麼你應該禁用 WordPress REST API
如果您是 WordPress 網站所有者,您可能聽說過 REST API 功能,該功能允許開發人員訪問站點數據並遠程執行操作。
雖然此功能很有用,但它也會帶來一些安全風險,這就是許多用戶選擇禁用它的原因。 以下是您應該考慮這樣做的一些原因:
1.未經授權的訪問: REST API 可以提供對用戶數據和登錄憑據等敏感信息的訪問。 如果您的站點的身份驗證或授權措施薄弱,黑客可以利用漏洞獲得對您站點的未授權訪問。
2.暴力攻擊:啟用 REST API 後,攻擊者可以使用自動化工具向您站點的 API 端點發出重複請求,試圖猜測有效的用戶名和密碼。 這種類型的攻擊會使您的服務器超載並危及您網站的安全。
3. DDoS 攻擊:黑客還可以使用 REST API 發起分佈式拒絕服務 (DDoS) 攻擊,方法是用過多的請求使您網站的服務器不堪重負。
要限制對 WordPress REST API 的訪問,您可以使用插件或手動將代碼添加到站點的 functions.php 文件。 通過禁用 REST API,您可以提高站點的安全性並防止潛在的攻擊。
總之,雖然 WordPress REST API 可以成為對開發人員有用的工具,但重要的是要權衡利弊與安全風險。 通過採取措施限制對 REST API 的訪問,您可以保護您的網站免受潛在威脅並確保您的數據安全。
如何禁用 WordPress Rest API [2 種方法]
如果您想禁用 WordPress REST API 以提高網站的安全性和隱私性,可以使用兩種方法。 第一種方法涉及使用插件,第二種方法需要修改您網站的代碼。
這兩種方法都很容易遵循。 通過限制對 WordPress REST API 的訪問,您可以保護您的網站免受潛在的安全威脅。
方法一:使用插件
如果您擔心 WordPress 網站的安全性,禁用 REST API 可能是一個有效的措施。 幸運的是,使用插件完成這項任務相對簡單。
在本節中,我們將幫助您使用禁用 WP REST API 插件來禁用您網站上的 REST API。
您需要做的就是從Plugins → Add New安裝並激活 Disable WP REST API 插件。
就是這樣! 激活後,該插件將自動阻止已註銷用戶對您站點上的 REST API 的所有請求。
在 WordPress 中使用插件來限制 Rest API 訪問是在 WordPress 站點上禁用 REST API 的一種簡單有效的方法。
您可以通過以下鏈接檢查您的網站上是否實際禁用了 REST API:yourwebsite.com/wp-json
如果此 URL 顯示這樣的 401 錯誤,則表示 REST API 已禁用:
方法 2:不使用插件禁用 WordPress Rest API
在本節中,我們將介紹在不使用插件的情況下禁用 WordPress Rest API 的方法。 這是保護您的網站並防止未經授權訪問敏感數據的有效方法。
請按照以下步驟在沒有插件的情況下禁用 WordPress Rest API:
第 1 步:轉到外觀 → 主題文件編輯器。
第 2 步:打開functions.php文件,並將以下代碼粘貼到文件中:
/** Disable REST API **/ // Filters for WP-API version 1.x add_filter('json_enabled', '__return_false'); add_filter('json_jsonp_enabled', '__return_false'); // Filters for WP-API version 2.x // add_filter('rest_enabled', '__return_false'); add_filter('rest_jsonp_enabled', '__return_false');
此代碼阻止來自未登錄用戶的未經身份驗證的 REST API 請求,從而有效地為他們禁用 API。 此代碼還禁用 wp-json/wp/v2/users 版本 2.x WP API。
第 3 步:保存並測試您的更改
如果一切正常,當以未登錄用戶身份訪問端點時,您應該會收到一條401 Unauthorized錯誤消息。
方法 3:限制對 WordPress Rest API 的訪問
在本節中,我們將討論如何限制對 WordPress Rest API 的訪問,這有助於提高網站的安全性。
通過限制訪問,您可以防止未經授權的請求通過 API 訪問您網站的數據。
如果將is_user_logged_in
檢查添加到rest_authentication_errors
過濾器,您將能夠要求對所有 REST API 調用進行身份驗證。
以下是您可以通過幾個簡單的步驟完成的方法:
第 1 步:訪問functions.php文件。
第 2 步:將以下代碼粘貼到文件中:
add_filter( 'rest_authentication_errors', function( $result ) { // If a previous authentication check was applied, // pass that result along without modification. if ( true === $result || is_wp_error( $result ) ) { return $result; } // No authentication has been performed yet. // Return an error if user is not logged in. if ( ! is_user_logged_in() ) { return new WP_Error( 'rest_not_logged_in', __( 'You are not currently logged in.' ), array( 'status' => 401 ) ); } // Our custom authentication check should have no effect // on logged-in requests return $result; });
請注意,傳入的回調參數可以是WP_Error
或boolean
值。 參數的類型表示認證過程的狀態。
1. null:未驗證,hook回調可能會申請自定義驗證。
2. boolean:之前已經檢查過的認證方式。 true 值表示身份驗證成功,false 值表示身份驗證失敗。
3. WP_Error:出現錯誤。
第 3 步:檢查您的網站以確保其正常運行。
就是這樣! 通過這些簡單的步驟,您可以限制對 WordPress Rest API 的訪問,從而使您的網站更加安全。
重要說明:此方法可能會影響某些依賴 Rest API 的插件或主題,因此請務必在進行此更改後徹底測試您的網站。
常問問題
禁用 Rest API 可以防止通過 Rest API 請求未經授權訪問您網站的數據和功能,從而幫助提高網站的安全性。
有幾種方法可以在 WordPress 中禁用 Rest API,但最簡單的方法是使用諸如 Disable WP REST API 之類的插件,它使您無需任何編碼即可輕鬆禁用 Rest API。
禁用 Rest API 可能會影響某些依賴 Rest API 請求才能正常運行的插件或主題的功能。 但是,大多數插件和主題應該會繼續正常工作。
結論
我們討論了在 WordPress 中禁用 Rest API 以增強網站安全性和隱私性的重要性。 我們逐步了解了通過各種方法禁用 Rest API 的過程。 通過遵循這些方法,您可以輕鬆保護您的網站免受潛在威脅。
感謝您抽出寶貴時間閱讀本文,希望對您有所幫助。 如果您在執行本文中提到的步驟時有任何疑問或遇到任何問題,請隨時在下面的評論部分中詢問我們。 我們的團隊隨時為您提供幫助。
要了解最新的 WordPress 教程和新聞,請務必在 Facebook 和 Twitter 上關注 BetterStudio。 我們的團隊會定期分享有用的提示和技巧,以幫助網站所有者優化他們的在線形象。