大胆尝试: 我们不妨打开控制台看一下,在更新文章或者发布文章的时候都发生了什么,如图,在保存文章的时候,发了一个 wp-json/wp/v2/posts/ 的请求,但是返回结果是 200(有的时候可能返回结果是...那我们不妨就百度一下,wp-json/wp/v2/posts/ 为什么不起作用? 虽然,并没有直接解决的方案,但是我们不难看出,搜索结果中绝大多数都提到了 rest api 的关键词。...WordPress 技巧:屏蔽 REST API ?...主题问题: 当然还有一些高级主题,在自己的配置中做了 屏蔽 REST API 的功能,需要自己查一下自己的主题中是否有下面代码: Shell // 屏蔽 REST API add_filter('rest_enabled...;add_filter('rest_jsonp_enabled', '__return_false'); // 移除头部 wp-json 标签和 HTTP header 中的 linkremove_action
漏洞简介 在REST API自动包含在Wordpress4.7以上的版本,WordPress REST API提供了一组易于使用的HTTP端点,可以使用户以简单的JSON格式访问网站的数据,包括用户,帖子...漏洞影响版本 WordPress4.7.0 WordPress4.7.1 0x01 漏洞复现 Seebug上已经给出详细的复现过程,在复现过程中可以使用已经放出的POC来进行测试。...0x02 漏洞分析 其实漏洞发现者已经给出了较为详细的分析过程,接下来说说自己在参考了上面的分析后的一点想法。 WP REST API 首先来说一下REST API。...WP-API允许HTTP客户端对资源执行CRUD操作(创建,读取,更新,删除,这边只展示和漏洞相关的部分): GET /wp-json/wp/v2/posts获取帖子的集合: ?...例如,使用URLhttp://example.com/wp-json/wp/v2/posts/123: 路由(route)是wp/v2/posts/123,不包括wp-json,因为wp-json是API
WordPress REST API WordPress 在4.4 版本开始推出了 REST API,如果你使用的是最新版本的WordPress应该会提供REST API的功能。...比如用chrome浏览器访问我的网站文章的api地址:https://www.watch-life.net/wp-json/wp/v2/posts,会看到如下图一样的结果: ?...的安装路径、Url重写有关,因此WordPress REST API 链接可能有差异,主要差异在WordPress 本身的链接规则上,相同的部分是REST API 路由部分。.../wp-json/wp/v2/ 而我的网站的WordPress已经经过URL重写所以,REST API的URL是直接访问网站的根目录:https://www.watch-life.net/wp-json.../wp/v2 通常 WordPress REST API 链接 是这样的: …/wp-json/wp/v2/posts ?
如果你正在测试WordPress网站的安全性,你很可能要看一下REST端点。默认情况下,用户可以通过路由"/wp-json/wp/v2/users "列出。...在最新的WordPress版本中,开启后你会得到用户名和哈希的电子邮件。有经验的WordPress管理员和用户都知道这种潜在的泄露。因此,我们可以在网上看到各种关于如何隐藏这些信息的教程。...rest_route=/wp/v2/users 绕过 2. WordPress.com API 第二种方法已经在之前关于 Jetpack 电子邮件公开披露的博客文章中进行了描述。....*******.com/wp-json/wp/v2/users 已屏蔽 https://public-api.wordpress.com/rest/v1.1/sites/blog.*******.com...大小写敏感性 在REST请求中,路由是用来定义所选资源的。请记住,WordPress是模块化的。资源(或服务)将取决于所安装的插件和WordPress的配置。
我在这里,使用了一个名为Wordpress Rest API的插件,这个插件提供的功能比较全面一些,而且在最新版本的Wordpress中,它的功能已经被官方作为基础功能集成进了Wordpress中,所以比较推荐使用...比如通过发起GET请求URL地址:http://your-domain/wp-json/wp/v2/posts,我们就可以获取到JSON格式的Wordpress中的文章列表。...开发 至此,小程序就可以直接调用暴露出来的Wordpress REST API了,例如: wx.request({ url: 'https://your-domain/wp-json/wp/v2/posts...,以及有可能对从Wordpress中的数据需要进行二次加工的便利性,我们推荐从主业务后端程序中发起对Wordpress的REST API调用。.../consts/errors') const WP_JSON_API = 'https://xxxxxx/wp-json/wp/v2' function search(keyword) { return
本文通过几个例子展示如何定制化输出WordPress REST API 的相关数据。...文章数据(posts)禁止某些字段显示 默认的,当请求类似 your-site.com/wp-json/wp/v2/posts?...get_post_meta( $data['id'], '', '' ); }, )); 输出 post meta 特定字段 接上,如果你在REST API 中仅仅想输出 post meta...借助 Nginx 控制 /wp-json 的访问 这个倒与WordPress 本身无关了,your-site.com/wp-json 的路由默认是所有人皆可访问。...先看下面的例子: # https://devework.com/wordpress-rest-api-dynamic-output.html location /wp-json { if (
在4.7.0版本后,REST API插件的功能被集成到WordPress中,由此也引发了一些安全性问题。...注册的路由用于用数字填充ID请求参数。比如,如果向/wp-json/wp/v2/posts/1234 –发送请求,则ID参数被设置为1234。...这使攻击者可以发送/wp-json/wp/v2/posts/1234?id=12345helloworld这样的请求,这样会将12345helloworld分配到ID参数,这样包含的不仅仅是数字。...出于对是什么导致get_post()无法找到帖子(除ID不存在外)的好奇,研究人员意识到其使用wp_posts中的get_instance()静态方法来抓取帖子。 ?...这导致了非常危险的情形,即攻击者可以提交/wp-json/wp/v2/posts/123?id=456ABC这样的请求来对ID为456的帖子进行篡改。
不过,庆幸的是,在 WordPress 最新发布的 6.5.0 版本变更记录中,依旧对 REST API 功能做了保留和支持。社区中也依旧有许多方便的可以调用的 SDK 方案和资料参考。...rest_route=/wp/v2/posts/1"}],"collection":[{"href":"http://localhost:8080/index.php?...rest_route=/wp/v2/posts"}],"about":[{"href":"http://localhost:8080/index.php?...rest_route=/wp/v2/posts/1/revisions"}],"wp:attachment":[{"href":"http://localhost:8080/index.php?...":true}]}}]当然,如果我们在 WordPress 后台中设置了任意类型的“固定链接”,开启了链接重写功能,我们的访问地址就可以改成更好看一些的 http://localhost:8080/wp-json
REST API 的处理过程类似,但稍微不同的是:输出的是 JSON 格式的数据,且一般是给客户端(非网页浏览器)使用。...我们可通过浏览器,直接访问 WordPress 的其中一个接口地址:your-site.com/wp-json/wp/v2/posts?.../wp-json/wp/v2/ 是WordPress 定义的 REST API 路由(router)与版本号等的组合。 posts 在 WordPress 中,称为「终点」(endpoint)。...在这里,我们用到的 WordPress REST API 就是 your-site.com/wp-json/wp/v2/posts?per_page={num}&page={num}。...构建文章详情页 文章页使用到的 API 地址是 your-site.com/wp-json/wp/v2/posts/{id}。
不过,庆幸的是,在 WordPress 最新发布的 6.5.0 版本变更记录中[10],依旧对 REST API 功能做了保留和支持[11]。...rest_route=/wp/v2/posts/1"}],"collection":[{"href":"http://localhost:8080/index.php?...rest_route=/wp/v2/posts"}],"about":[{"href":"http://localhost:8080/index.php?...rest_route=/wp/v2/posts/1/revisions"}],"wp:attachment":[{"href":"http://localhost:8080/index.php?...":true}]}}] 当然,如果我们在 WordPress 后台中设置了任意类型的“固定链接”,开启了链接重写功能,我们的访问地址就可以改成更好看一些的 http://localhost:8080/wp-json
原理篇 WordPress 与 REST API WordPress 在4.4 版本后推出了 REST API, REST API 简单来说就是一种通过 HTTP 请求来获取、更新、删除数据的一种连接客户端与服务端的交互方式...(原图来自wisdmlabs,稍作修改) 以本站为例,可通过浏览器直接访问REST API 的其中一种URL:https://devework.com/wp-json/wp/v2/posts?...且让Jeff 将上面的URL 解释下,/wp-json/wp/v2/ 这个是WordPress 定义的REST API 的“路由”(router)与版本号等的组合,合在一起称作“命名空间”(namespace...使用到WordPress 的REST API 就是 your-site.com/wp-json/wp/v2/posts?per_page={num}&page={num}。.../wp-json/wp/v2/posts/{id}。
背景 这里有个用户提的 issue (我自己转发的),之后一个月左右不会再周更 Tony 主题了,所以赶快把这个需求做了 代码 使用 Vue.js + Axios.js + WordPress REST...API 来实现在快速预览展开情况下获取评论列表并支持发送评论 在使用 WordPress REST API 发送 POST 请求时需要使用内置函数 wp_create_nonce( 'wp_rest...>/wp-json/wp/v2/posts/' + postId) .then(response => { if (response.data.length !...>/wp-json/wp/v2/comments?...>/wp-json/wp/v2/comments?
背景 才发现好像没做博客必须的一个功能——归档,赶快补上吧 查询了 WordPress REST API 文档之后,发现每次请求的文章总数( 也就是 per_page 参数 )不可以超过 100,但是归档页面理应展示全部文章...,于是需要在 function.php 增加以下钩子和函数拓宽这个限制 https://github.com/WP-API/WP-API/issues/2914 add_filter( 'rest_post_collection_params...} return $params; } 代码 WordPress REST API 默认以 date (文章发布日期) 来排序文章输出,所以可以遍历全部文章,判断上下篇发布年份来按照年份归档文章...//获取文章列表 axios.get('https://www.ouorz.com/wp-json/wp/v2/posts?...}else{ //发布年份与上一篇相同 this.posts_array[k]['posts'][(this.posts_array[k]['posts'
另外在开始开发之前,我在服务端对WordPress REST API 进行了一些定制化的输出,这个很早就写了接下来几天我专门写个关于这个的文章吧这里就不细说了。...使用到WordPress 的REST API 就是 your-site.com/wp-json/wp/v2/posts?per_page={num}&page={num}。...id=' + id; wx.navigateTo({ url: url }) } 文章内页(文章详情页面) 文章页使用到的REST API URL是your-site.com.../wp-json/wp/v2/posts/{id}。...使用上,按照WxParse 的文档,在获取到文章数据后,经过html to wxml 的步骤后赋值到page data: // https://devework.com/wordpress-rest-api-weixin-weapp.html
想要使用 REST API 需要自己额外安装插件:WordPress REST API,现在 WordPress 5.0以上的版本已经默认支持 REST API了,不需要额外去安装插件。...新站首次用 Postman 去 访问 REST API 接口,如:http://EXAMPLE_URL/wp-json/wp/v2/posts,会发现返回的是 404,需要自己在管理后台将:设置-固定链接...Object 对象在PHP 中,有三种类型的数组:// 数值数组:以数字为键的数组,键从0开始自增$arr = ['zhou', 'xiao', 'hei'];// 关联数组:带有指定的键的数组,每个键关联一个值...但是要注意 WP_Query 文档上并没有写 no_found_rows 这个参数,翻源码可以发现是有的,WP_Comment_Query 文档上有写 no_found_rows 参数,但是要注意它的默认值是...能用$this的地方一定使用self,能用self的地方不一定能用$this,静态的方法中不能使用$this,静态方法给类访问的。
重磅功能 前言 将WordPress 作为小程序的后端,建议是做一些针对性的优化(如《WordPress REST API 定制化输出》)以减少HTTP 请求传输过程中不必要字节数。...1)在尽量保证其它同等条件下,对某篇文章的请求结果对比: ? ? 2)原REST API 数据对比: ? ? 实际使用起来的对比效果么,就见仁见智了。...评论列表的展示用到的WordPress REAT API 接口是https://example.com/wp-json/wp/v2/comments?...发布评论 WordPress 的发布评论的接口是https://example.com/wp-json/wp/v2/comments?...在这里献上PHP 的核心代码: // https://devework.com/wordpress-weapp-5.html // 在rest api 上输出相关文章 function raa_get_related_posts_by_id
WordPress JSON REST API (WP API) 简介 这个插件(WordPress JSON REST API (WP API))提供了一个易于使用的REST API,让我们可以通过...获取或更新数据非常简单,只需要发送一个HTTP请求就可以了。 需要获取网站的文章?只需要发送一个GET请求到/wp-json/posts,需要更新ID为4的用户?...只需要发送一个POST请求到/wp-json/users/4,搜索关键词为 “awesome”的所有文章,发送一个GET请求到/wp-json/posts?...WordPress JSON REST API (WP API)的使用 WP REST API插件的使用还是非常简单的,在Wordpress后台下载安装好WP REST API插件后,启用插件,注意...更多可用查询参数请参考WordPress官方文档,下面是可以在API中使用的查询参数: m p posts w cat
'get_callback' => 'wp_rest_get_categories_links', //在 posts 中展示分类&链接&ID 'update_callback...=> 'wp_rest_get_normal_date', //在 posts 中展示简化后的日期 'update_callback' => null,...array( 'get_callback' => 'get_post_meta_for_api', //在 posts 中展示一些指定的文章自定义字段...posts 的 REST API 时也输出你的博客名称: add_action( 'rest_api_init', 'wp_rest_insert_some' ); //注册函数加入 REST API.../wp/v2/posts
2、确认是否使用了wordpress程序 其实上面的代码差不多已经确认你用的是wp程序了,这里还是提及一下: 攻击者或者攻击程序通过构造 https://你的域名//wp-includes/wlwmanifest.xml... 的URL进行GET,来判断你是否使用了Wordpress程序。...4、设置访问权限 1)禁止访问/wp-json/wp/v2/users/,如果是宝塔的话,可以在网站配置或者伪静态中设置如下代码。...如图: wp-pass-4.png 5、如果你是宝塔而且安装了专业版防火墙,还可以这样设置 在禁止访问的url中添加以下规则: /wp-json/wp/v2/users /wp-includes...2)其实有一些主题的管理员账号是显示在文章里面的,感觉这样真的是……,我们可以在wp后台设置一个昵称,这样文章会显示昵称在文章中。
( 'wp_print_styles', 'print_emoji_styles' ); 5.移除wp-json链接 api.w.org/' href='http:...//wordpress.cc/wp-json/' /> 移除 remove_action( 'wp_head', 'rest_output_link_wp_head', 10 ); 6.移除 wp-block-library-css...'feed_links_extra', 3 ); //分类等feed 9.移除wp-json api 功能 [link rel='https://api.w.org/' href='http://example.com...','wp_shortlink_wp_head',10,0); 移除wp-json // 屏蔽 REST API add_filter('rest_enabled', '__return_false')...; add_filter('rest_jsonp_enabled', '__return_false'); // 移除头部 wp-json 标签和 HTTP header 中的 link remove_action
领取专属 10元无门槛券
手把手带您无忧上云