标签: 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 );
-
作者帖子
- 哎呀,回复话题必需登录。