漏洞简介 在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
在4.7.0版本后,REST API插件的功能被集成到WordPress中,由此也引发了一些安全性问题。...这种行为本身不失为一种防止攻击者编制恶意ID值的好方法,但是当查看REST API如何管理访问时,研究人员很快发现其给予$_GET 和$_POST值的优先级高于路由的正则表达式生成的值。...出于对是什么导致get_post()无法找到帖子(除ID不存在外)的好奇,研究人员意识到其使用wp_posts中的get_instance()静态方法来抓取帖子。 ?...这导致了非常危险的情形,即攻击者可以提交/wp-json/wp/v2/posts/123?id=456ABC这样的请求来对ID为456的帖子进行篡改。...鉴于此类型欺骗问题,攻击者便可篡改受害者网站上的任何帖子或页面的内容。这样他们便可以添加插件特定的短代码来利用漏洞(原本仅限于贡献者)、使用SEO垃圾邮件活动感染网站内容或注入广告,等等。
在最新的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的配置。...搜索 在少数情况下,我们遇到了没有明确阻止的API,但/wp/v2/users端点没有返回avatar_urls属性。
WordPress REST API WordPress 在4.4 版本开始推出了 REST API,如果你使用的是最新版本的WordPress应该会提供REST API的功能。...的安装路径、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 ?...获取页面api链接:https://www.watch-life.net/wp-json/wp/v2/pages 获取评论api链接:https://www.watch-life.net/wp-json
另外一种,则是 REST API,使用通用的 JSON 格式来与 WordPress 应用进行数据交互。...在 GitHub 社区中,曾经有过关于它的讨论,从 2017 年开始,社区就在推荐大家使用 alias 功能重写 wp 命令,来将 --allow-root 参数添加到真实运行的命令中...方案二:WP REST API虽然上文中提到了 WP REST API 当前的窘况,但好在目前 6.5.0 版本中,官方还是对它进行了支持,虽然没有明确文档告知用户该如何使用(应该是暂时减少支持工作消耗的开发同学的精力...那么,我们就只需要在 wp-config.php 或 wp-config-docker.php (如果你使用 Docker 运行)中添加下面的代码即可:# Enable WP REST API, by...好啦,到这里为止,我们了解了如何使用 API 的方式来访问 WordPress,接下来,我们来开始进阶使用。保护你的 API 接口我们分别来针对两种方案来聊聊 API 使用保护的问题。
1)在尽量保证其它同等条件下,对某篇文章的请求结果对比: ? ? 2)原REST API 数据对比: ? ? 实际使用起来的对比效果么,就见仁见智了。...评论列表的展示用到的WordPress REAT API 接口是https://example.com/wp-json/wp/v2/comments?...另外,上面的Comment API 默认的数据段是按照时间排序的评论数组,在 WordPress 中存在的父子评论关系在 API 中是通过parent与id两个字段联系起来。...发布评论 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
背景 这里有个用户提的 issue (我自己转发的),之后一个月左右不会再周更 Tony 主题了,所以赶快把这个需求做了 代码 使用 Vue.js + Axios.js + WordPress REST...API 来实现在快速预览展开情况下获取评论列表并支持发送评论 在使用 WordPress REST API 发送 POST 请求时需要使用内置函数 wp_create_nonce( 'wp_rest...' ) 获取 REST API 识别码并且添加到请求头部 preview: function (postId) { //预览文章内容 var previewingPost = $('.article-list-item...>/wp-json/wp/v2/comments?...>/wp-json/wp/v2/comments?
WordPress REST API 另外一种,则是 REST API[6],使用通用的 JSON 格式来与 WordPress 应用进行数据交互。... 在 GitHub 社区中,曾经有过关于它的讨论[13],从 2017 年开始,社区就在推荐大家使用 alias 功能重写 wp 命令,来将 --allow-root 参数添加到真实运行的命令中...方案二:WP REST API 虽然上文中提到了 WP REST API 当前的窘况,但好在目前 6.5.0 版本中,官方还是对它进行了支持,虽然没有明确文档告知用户该如何使用(应该是暂时减少支持工作消耗的开发同学的精力...那么,我们就只需要在 wp-config.php 或 wp-config-docker.php (如果你使用 Docker 运行)中添加下面的代码即可: # Enable WP REST API, by...好啦,到这里为止,我们了解了如何使用 API 的方式来访问 WordPress,接下来,我们来开始进阶使用。 保护你的 API 接口 我们分别来针对两种方案来聊聊 API 使用保护的问题。
这个入门单元会在两个阶段启动一个带有响应前端的 WordPress 后端,与 WP REST 编程接口进行对话。要使用它,请克隆保管库。...你的网站或应用程序需要与一些 API 进行对话,你的 WordPress 内容只是其中之一,而使用 JavaScript 前端来做到这一点更简单。...由于 REST 编程接口已经在 WordPress 中使用了大约一年,因此具有响应功能的 Headless WordPress 在特定情况下的功能令人钦佩。...专业的细微之处:如何做 Headless WordPress?...WordPress 模块在 WP REST 编程接口(ACF 到 WP 编程接口和 WP-REST 编程接口 V2 菜单)中发现那些自定义字段和 WordPress 菜单。
另外在开始开发之前,我在服务端对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
wp-includes/rest-api.php wp-includes/version.php package-lock.json package.json wp-comments-post.php...支持萨姆·托马斯(jazzy 25)发现XSS问题,在该问题中,经过身份验证的低权限用户能够将JavaScript添加到块编辑器的帖子中 对Luigi的支持——发现了一个XSS问题,拥有上传权限的认证用户能够向媒体文件添加...,即设置屏幕选项可能被插件滥用,导致权限升级 卡罗琳娜·尼马克发现了一个问题,在这个问题上,来自受密码保护的帖子和页面的评论可以在特定条件下显示。...49956–垃圾邮件发送者能够分享不受限制的评论(参见下面的相关发展说明) 49749–用带斜杠前缀的名称空间注册rest路由会产生不一致的结果 49798–暗模式浏览器中的默认文字按钮图标 49808...48803–20:不支持作者的自定义帖子类型,显示作者 48916–20:锚链接在移动菜单中不起作用 49088–20:为网页链接添加图标(谷歌商业简介) 49316–20张图片未获得许可。
推荐阅读[已解决]wordpress错误:此用户名包含无效字符,请输入有效的用户名 1、REST API是否被阻止 导致此错误的最常见原因之一是REST API。...如果REST API被阻止,那么您将无法添加,删除或更新您的帖子。 ...如果您的网站受到持续的DDOS威胁,甚至可以阻止REST API请求。 您应该暂时停用Cloudflare,以查看如果使用Cloudflare能否解决问题。...将以下几行添加到您的wp-config.php文件中。...现在,您可以尝试在WordPress中发布,修改或重新创建文章。 5、使用经典WordPress编辑器 经典编辑器是此错误的临时解决方案。
WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站,也可以把 WordPress当作一个内容管理系统(CMS)来使用。...WordPress 4.6中的v2版本,有一个比较大的改进,就是搜索功能。在已装插件屏幕和添加新插件屏幕中,搜索框都采用了ajax搜索。...—— 持续性评论缓存 从2.5版本开始,评论API特意不使用持续性缓存。20个版本过去了,现在做了改动。...当添加、修改、删除评论的时候,评论可以存储在持续性的对象缓存中,过期的缓存将会被正确地设置为无效。...—— REST API ——增强了 register_meta() —— 自定义面板 —— WP_Site_Query,WP_Network_Query,WP_Term_Query,WP_Post_Type
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。...它是使用PHP语言和MySQL数据库开发的。用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客。WordPress有许多第三方开发的免费模板,安装方式简单易用。...找到您创建的页面,单击旁边的复选框,单击“添加到菜单”,将其添加到列表中。 添加和编辑帖子 如果您要在网站上搭建博客,那么您可能需要添加“帖子”的功能。您可以使用不同的类别来分组帖子。...它们也是搜索引擎如何确定排名的重要组成部分。您应该在网站的每个页面上使用唯一标题。 标语在每个页面的标题末尾添加。要更改网站上的标题和标语,请转到“设置 - >常规”并填写表单。...“帖子页面”是您博客的首页(如果您的整个网站不是博客)。如果您没有自己选择静态页面,WordPress将收集您的最新帖子并开始在您的主页上显示它们。
知晓程序(微信号 zxcx0101)今天分享的这篇文章,将一步步讲解,如何将一个 WordPress 网站借助 REST API 开发微信小程序版。...关注「知晓程序」公众号,在微信后台回复「开发」,获取小程序开发技巧精选文章。 小程序如何读取 WordPress 博客内容? WordPress 在 4.6 版本推出了 REST API。.../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 网站借助 REST API 开发微信小程序版。本文目标受众为了解WordPress 且有初级前端知识的同学。...原理篇 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}。
本文通过几个例子展示如何定制化输出WordPress REST API 的相关数据。...文章数据(posts)禁止某些字段显示 默认的,当请求类似 your-site.com/wp-json/wp/v2/posts?...get_post_meta( $data['id'], '', '' ); }, )); 输出 post meta 特定字段 接上,如果你在REST API 中仅仅想输出 post meta...', 'dw_rest_prepare_post', 10, 3 ); 上面的代码展示的是如何输出thumb 这个 post meta 字段,请按需使用。...先看下面的例子: # https://devework.com/wordpress-rest-api-dynamic-output.html location /wp-json { if (