標籤: api, wordpress 安全
- 該話題包含 10 個回覆,2 人參與,最後由
eoeore 更新於 5 年、 10 月前 。
-
作者帖子
-
請問如何禁用全站的 API 、 http 、 wp-json 等,或單獨授權指定域名??
避免讓別人盜用自己的 wordpress api 或呼叫自己網站內容,這樣就不太安全了。
你可以從伺服器端進行防盜鏈,然後 WordPress 網站內部禁用相關引數,常規的 WordPress API 就用下面的外掛禁用。
或者遮蔽到全部的 http 請求,將下面的程式碼新增到
wp-config.php
檔案的好了,不要再編輯了,開始你的部落格吧,上面。
define( 'WP_HTTP_BLOCK_EXTERNAL', TRUE );
我自己再查詢下能否不用外掛,使用程式碼方式能否禁用 api,http,wp-json 。
那如何檢驗禁用 api 已經生效了?
是透過檢視以下網址能否開啟??
那你就用程式碼,加到子主題的 functions.php 功能檔案裡面:
add_filter('rest_enabled', '__return_false'); add_filter('rest_jsonp_enabled', '__return_false'); remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' ); remove_action( 'wp_head', 'rest_output_link_wp_head', 10 ); remove_action( 'template_redirect', 'rest_output_link_header', 11 );
之後訪問
https://你的網站/wp-json/
檢視會提示已經禁用。剛剛將上述程式碼,新增到 functions.php 檔案中,但是 https://你的網站/wp-json/ 依舊可以開啟。
會提示已經禁用,沒說不能訪問這個路徑。
我使用谷歌瀏覽器,新增程式碼之後,開啟 https://你的網站/wp-json/,瀏覽器沒有提示已經禁用,頁面上也沒顯示已經禁用。
描述問題要貼上截圖。
那你就用外掛,可以只讓認證使用者訪問
生效的禁用程式碼就是下面,兩個版本
// 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' ); // Remove REST API info from head and headers remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' ); remove_action( 'wp_head', 'rest_output_link_wp_head', 10 ); remove_action( 'template_redirect', 'rest_output_link_header', 11 );
-
作者帖子
- 哎呀,回覆話題必需登入。