如何禁用全站的 API 或 http 、 wp-json,或单独授权指定域名??

如何禁用全站的 API 或 http 、 wp-json,或单独授权指定域名??

标签: ,

正在查看 10 个帖子:1-10 (共 11 个帖子)
  • 作者
    帖子
  • eoeore
    参与者
    • 文章数量: 114
    @eoeore
    楼主

    请问如何禁用全站的 API 、 http 、 wp-json 等,或单独授权指定域名??

    避免让别人盗用自己的 wordpress api 或调用自己网站内容,这样就不太安全了。

    诗语
    管理员
    • 文章数量: 5,908
    @feibisi

    你可以从服务器端进行防盗链,然后 WordPress 网站内部禁用相关参数,常规的 WordPress API 就用下面的插件禁用。

    Disable WP REST API

    或者屏蔽到全部的 http 请求,将下面的代码添加到 wp-config.php 文件的 好了,不要再编辑了,开始你的博客吧,上面。

    define( 'WP_HTTP_BLOCK_EXTERNAL', TRUE );

    eoeore
    参与者
    • 文章数量: 114
    @eoeore
    楼主

    我自己再查找下能否不用插件,使用代码方式能否禁用 api,http,wp-json 。

    那如何检验禁用 api 已经生效了?

    是通过查看以下网址能否打开??

    https://你的网站/wp-json/wp/v2/posts

    诗语
    管理员
    • 文章数量: 5,908
    @feibisi

    那你就用代码,加到子主题的 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/ 查看会提示已经禁用。

    eoeore
    参与者
    • 文章数量: 114
    @eoeore
    楼主

    刚刚将上述代码,添加到 functions.php 文件中,但是 https://你的网站/wp-json/ 依旧可以打开。

    诗语
    管理员
    • 文章数量: 5,908
    @feibisi

    会提示已经禁用,没说不能访问这个路径。

    eoeore
    参与者
    • 文章数量: 114
    @eoeore
    楼主

    我使用谷歌浏览器,添加代码之后,打开 https://你的网站/wp-json/,浏览器没有提示已经禁用,页面上也没显示已经禁用。

    诗语
    管理员
    • 文章数量: 5,908
    @feibisi

    描述问题要贴上截图。

    eoeore
    参与者
    • 文章数量: 114
    @eoeore
    楼主

    诗语
    管理员
    • 文章数量: 5,908
    @feibisi

    那你就用插件,可以只让认证用户访问

    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' );
    
    // 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 );
正在查看 10 个帖子:1-10 (共 11 个帖子)
  • 哎呀,回复话题必需登录。

话题信息