標籤: 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 );
-
作者帖子
- 哎呀,回覆話題必需登錄。