首页
学习
活动
专区
圈层
工具
发布

WordPress JSON REST API简单介绍及使用

WordPress JSON REST API (WP API) 简介 这个插件(WordPress JSON REST API (WP API))提供了一个易于使用的REST API,让我们可以通过...WP API为WP查询创建了一个简单而方便的接口,文章API,文章元数据API,用户API,版本API等等。WordPress能做的事情,WP API同样可以让你做到,并且更加方便。...WordPress JSON REST API (WP API)的使用 WP REST API插件的使用还是非常简单的,在Wordpress后台下载安装好WP REST API插件后,启用插件,注意...(boolean) optional post_meta – 文章的元数据,文章元数据应该是一个或多个元数据对象的数组,查看使用端点键值对创建文章元数据章节。...更多可用查询参数请参考WordPress官方文档,下面是可以在API中使用的查询参数: m p posts w cat

2.5K10

WordPress REST API 内容注入漏洞分析

漏洞简介 在REST API自动包含在Wordpress4.7以上的版本,WordPress REST API提供了一组易于使用的HTTP端点,可以使用户以简单的JSON格式访问网站的数据,包括用户,帖子...上周,一个由REST API引起的影响WorePress4.7.0和4.7.1版本的漏洞被披露,该漏洞可以导致WordPress所有文章内容可以未经验证被查看,修改,删除,甚至创建新的文章,危害巨大。...漏洞影响版本 WordPress4.7.0 WordPress4.7.1 0x01 漏洞复现 Seebug上已经给出详细的复现过程,在复现过程中可以使用已经放出的POC来进行测试。...0x02 漏洞分析 其实漏洞发现者已经给出了较为详细的分析过程,接下来说说自己在参考了上面的分析后的一点想法。 WP REST API 首先来说一下REST API。...控制器 WP-API中采用了控制器概念,为表示自愿端点的类提供了标准模式,所有资源端点都扩展WP_REST_Controller来保证其实现通用方法。

4.1K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    枚举 WordPress 用户的 6 种方法

    HTTP 参数“rest_route” 我们展示的第一个绕过是滥用替代路径到达同一端点。...rest_route=/wp/v2/users 绕过 2. WordPress.com API 第二种方法已经在之前关于 Jetpack 电子邮件公开披露的博客文章中进行了描述。...大小写敏感性 在REST请求中,路由是用来定义所选资源的。请记住,WordPress是模块化的。资源(或服务)将取决于所安装的插件和WordPress的配置。...搜索 在少数情况下,我们遇到了没有明确阻止的API,但/wp/v2/users端点没有返回avatar_urls属性。...设置,将在网页和REST响应中隐藏头像。 我们也找到了一个解决这些问题的方法。该端点支持参数 "搜索"。它的值与所有用户的字段匹配,包括电子邮件地址。

    5.1K20

    CVE-2024-25600:WordPress Bricks Builder RCE

    0x01 简介 Bricks Builder 是一个 WordPress 页面构建插件,它的主要功能是让用户可以通过直观的界面和拖放操作来创建自定义的网页布局。...同时如果要想成功执行代码则还需要两个条件 1.在element参数下setting参数下的query参数下,设置参数queryEditor为我们rce代码 2.在element参数下setting参数下的...的实例化,需要的条件就是loop_element为false,而其初始值为false,这里设置了ajax与rest api这两种请求方式。...api.php中存在命名相同的方法调用了Ajax#render_element,这里的api.php实际上是一个处理注册的 REST API 端点之一的文件 继续搜索调用,找到在它的自定义初始化端点函数...,从中可以看到它定义了很多能够注册的REST路由,API_NAMESPACE的值就是/bricks/v1/,通过后面拼接某个字符串的方式触发对应的callback回调函数以及权限检查。

    77910

    REST API 最佳实践

    3.在端点上使用嵌套显示关系 很多时候,不同的端点可以相互联系,所以你应该对它们进行嵌套,这样更容易理解它们。...当我们在 URL Query 中命名参数名称与值时,建议使用下划线。 如一个使用下划线的查询参数可能如下所示: https://api.example.com/users?...first-name=john&last-name=doe 虽然在技术上两者都是有效的,但使用下划线的查询参数更符合 REST API 的最佳实践,并且更容易读写和阅读。...3.示例 一般来说 API 的外在形式无非就是增删改查(当然具体的业务逻辑肯定要复杂得多),而查询又分为详情和列表两种,在 REST 中这就相当于通用的模板。...删除多个评论 5.小结 在这篇文章中,你了解了在创建 REST API 时需要记住的几个最佳实践。

    2.8K20

    WordPress未经身份验证的远程代码执行CVE-2024-25600漏洞分析

    也可以在第 14 行创建/渲染任何 Brick 的构建器元素,方法是省略“ loopElement ”参数并传递没有 .php 文件的元素的“名称”。...该方法可通过 admin-ajax.php 端点和 WordPress Rest API 调用。...代码注释:REST API(在 API->render_element_permissions_check() 中检查权限)表示此检查是否在 WP 的 REST API 的权限回调中执行。...二、修复快速修复很复杂,因为eval的用户输入的功能被利用到后端的多个部分当然,快速修复的方法是向 REST API 端点添加正确的权限检查。但这仍然留下了危险的功能,并且很可能通过其他方式调用它。...三、EXPgithub上一位师傅提供的,也是我在本地复现时使用的,交互shellimport reimport warningsimport argparseimport requestsfrom rich.console

    2.7K10

    为什么我使用 GraphQL 而放弃 REST API?

    端点接受请求体中的文件内容,因此,它们的参数将以 JSON 的形式在Dropbox-API-Arg请求头或 arg URL 参数中传递。 JSON 在请求头中?...分页和过滤并不简单 大多数 API 都使用对象集合。在待办事项列表应用中,列表本身就是一个集合。大多数集合都可以包含 100 多个项。...你需要同时在服务器和客户端上实现每个端点 还有大量的库可以在 ORM 或直接数据库自省的帮助下自动生成 REST 端点。即使使用了这样的库,它们通常也不是很灵活或可扩展的。...也就是说,如果需要自定义参数、高级过滤行为或对请求 / 响应有效负载的一些更智能的处理,就需要从头重新实现端点。 另一项任务是在客户端代码中使用这些端点。...不再有多个重量级的查询发送到一个刚性的 REST API,为了让客户端可以在应用程序 UI 中一次性显示它。你不再受限于一组端点,而是有一个可以查询和修改的模式,能够挑选客户端指定的字段和对象。

    3.3K30

    为什么要使用 GraphQL?【Programming】

    GraphQL在标准REST API技术上获得发展的原因。...如果来自RESTAPI端点的成功响应返回35个字段,则客户端应用程序将接收35个字段 提取问题 传统上,REST API无法为客户端应用程序提供唯一的方法来仅检索或更新他们关心的数据。...REST的响应 REST API设计人员不愿无休止地失败,他们尝试通过以下几种方式来解决移动应用程序性能问题: “include”和“exclude”查询参数,允许客户端应用程序通过潜在的长查询格式指定他们想要的字段...在许多方面,这又回到了早期的web编程模式,客户端应用程序代码将直接查询后端系统——例如,有些人可能记得10-15年前在jsp上使用JSTL编写SQL查询!...引入GraphQL的组织敏捷性增加通常归因于以下因素: GraphQL API设计人员和开发人员无需在客户端需要一个或多个新字段时创建新的端点,而是能够将这些字段包含在现有的图形实现中,从而以较少的开发工作量和跨应用程序系统的较少更改的方式公开新功能

    1.4K00

    ⚡REST 和 SOAP 协议有什么区别?

    示例操作包括创建、更新、查询或删除资源(分别为 POST、PUT、GET 和 DEL)。## **REST API 的优点**### 前后端分离前后端分离具有以下优点:* **所有组件的可迁移性。...** 由于 REST 架构是“多层次的”,所以服务器组件具有可迁移性。REST API 可在多个平台上使用,这可以在开发过程中轻松进行测试。...例如,在 REST API 中,通常只需一个 URL 端点,通过发送 POST 或 PUT 请求即可完成资源的创建或更新。而在 SOAP 中,创建或更新数据对象需要分别调用处理这些特定操作的独立函数。...请求体与参数类似,只是它们是包含多个属性的对象,而不是一个。下面是向 Swagger Petstore API 发出的创建宠物的 REST API `cURL` 请求。...* 参数: * REST - 宠物 ID 作为路径参数传递给端点 URL。 * SOAP - 使用 GetPet 选项在 Body 块中传递宠物 ID。

    1.7K00

    安息吧 REST API,GraphQL 长存

    要使用 REST API 实现相同的功能,我们需要引入难以管理和扩展的非结构化参数和条件。...我们可以说 GraphQL 其实根本就是:REST API 的接替者。所以让我回答一下你最有可能问的问题。 REST API 有什么问题? REST API 最大的问题是其多端点的本质。...REST API 通常是端点的集合,其中每个端点代表一个资源。因此,当客户端需要获取多个资源的数据时,需要对 REST API 进行多次往返,以将其所需的数据放在一起。...REST API 的另一大问题是版本控制。如果你需要支持多个版本,那通常意味着需要新的端点。而在使用和维护这些端点时会导致诸多问题,并且这可能导致服务器上的代码冗余。...服务器很可能不会像这般实现,并且我们需要让我们的后端工程师为我们额外创建这个自定义的端点。

    3.4K30

    为什么GraphQL是API的未来

    因此,在实际的程序中,我们最终会为这些资源提供大量端点。如果要发出 GET 请求,则需要具有特定参数并特定于该请求的端点。如果要发出 POST 请求,则需要该请求的另一个端点。 ?...基本上它是 REST 的替代品,做了很多改进。 使用 GraphQL,我们可以获得许多新功能,在构建 API 时为你提供强大的功能。下面让我们一个一个地审视它们: 单端点 根本没有必要构建很多端点!...GraphQL 只需要一个端点,通过它我们可以在单个请求中获得尽可能多的数据。基本上 GraphQL 会将你的所有查询、修改和订阅封装在一个端点中,并供你调用。...在2018年11月,GraphQL 与 Linux Foundation 合作创建了一个 GraphQL Foundation。这种查询语言鼓励其开发人员创建更多的文档、工具和语言支持。...在本系列的下一篇教程中,我将深入研究 GraphQL,展示 GraphQL 如何与类型一起工作,并创建我们的第一个查询和修改。 所以请继续关注并希望在下一个教程中见到你!

    2K30

    REST 已死:为什么你的 .NET API 应该迁移到 GraphQL

    基础理解 GraphQL 是一种 API 查询语言,允许客户端按需获取数据。与 REST(服务器决定每个端点返回的数据)不同,GraphQL 让客户端精确指定所需数据。...查询(Queries):获取数据(类似 REST 的 GET) • 单次查询可请求多个资源 • 字段可无限嵌套 • 始终保持幂等性(不改变数据) 2....变更(Mutations):修改数据(类似 REST 的 POST/PUT/DELETE) • 单次请求可执行多个修改 • 返回更新后的数据 • 顺序执行(不同于查询) 3....订阅(Subscriptions):实时更新 • 与服务器保持活动连接 • 数据变更时接收更新 • 适用于聊天应用、实时动态等 REST 与 GraphQL 对比 REST 方式(需多个端点) GET...这与 REST 有本质区别——在 REST 中,每个端点通常映射到单个控制器操作;而在 GraphQL 中,可能需要数十个解析器协同工作以满足单个查询。

    58000

    使用 GraphQL 和 Ballerina 操作多个数据源

    这在使用 REST 时非常常见,因为它总是从给定的端点返回固定的数据集,而客户端实际上具有特定的数据需求。获取不足意味着特定端点没有提供足够的所需信息,客户端不得不发出额外的请求来获取所需的数据。...这个示例使用 MySQL 数据库和 Google Books API 作为数据源 这个示例的所有源代码都可以在 Github 上找到。...然后,你通过指定要监听的端口来创建 GraphQL 监听器对象,并将其附加到服务上。 资源方法以 REST 的方式公开服务,而远程方法则以过程方式公开服务。...你可以在命令行中使用 curl 向端点发送 HTTP POST 请求,并将 GraphQL 查询作为 JSON 传递给它。...在我们的示例中,我们实现了一个书店的 GraphQL 应用场景,结合了多个后端数据源,包括 MySQL 数据库和 Google Books API。

    3.5K20

    API 架构风格抉择:SOAP、REST、GraphQL 和 RPC 的特性、优势与局限

    在 RPC 中,无法自检 API 或发送请求,也无法根据请求了解要调用的函数。 函数爆炸。创建新函数太容易了。因此,我们不是编辑现有函数,而是创建新函数,结果却得到了一大堆难以理解的重叠函数。...内置的创建基于 Web 的服务功能允许 SOAP 处理通信,并使响应与语言和平台无关。 绑定多种传输协议。SOAP在传输协议方面非常灵活,可以适应多种场景。 内置错误处理。...REST复用了大量 HTTP 工具,是唯一允许在 HTTP 级别缓存数据的样式。相比之下,在任何其他 API 上实现缓存都需要配置额外的缓存模块。 支持多种格式。...在查询之前掌握了模式后,客户端可以验证其查询,确保服务器能够响应。到达后端应用程序后,GraphQL 操作将根据整个模式进行解释,并解析为前端应用程序的数据。...虽然 REST 提供了多个 API 版本,但 GraphQL 使用单一的、不断发展的版本,该版本可以持续访问新功能并有助于实现更清洁、更易于维护的服务器代码。 详细的错误消息。

    1.2K10

    4种主流的API架构风格对比

    在 RPC 中,无法对 API 进行检验总结,或者发送请求来开始理解根据需求应该调用哪个函数。 函数爆炸性增长。创建新函数非常容易。...但由于大多数人不使用 HATEOAS,因此他们实际上是在使用 HTTP RPC。”这是 Reddit 上表达的一些激进观点。确实,HATEOAS 是 REST 的最成熟版本。...缓存友好:REST 重用了许多 HTTP 工具,也是唯一一种可以在 HTTP 层面上缓存数据的 API 架构风格。与其相对的是,在任何其他 API 上实现缓存都需要配置其他缓存模块。...因为在客户端进行查询之前已经定义好了模式,所以客户端可以验证其查询语句,以确保服务端能够对查询语句进行响应。...GraphQL 能够隐藏其 API 背后的多个系统集成的复杂性。GraphQL 从多个地方聚合数据,并将它们合并为一个全局的模式。

    3K30

    API与Endpoint的区别,你知道多少?

    那么,在概念和使用上,API和端点有什么区别呢?在本文中,我们将探讨这个话题。...API接口是实现这些规则和协议的具体实现。API接口可以包含多个端点(Endpoint),每个端点对应特定的功能或资源。...在Web服务中,Endpoint通常表示一个URL,这些URL在API的文档中被描述,客户端通过这些URL访问服务器上的资源。...但是所有这些操作都由同一个API提供。 在Web API领域,API通常由URI或REST端点表示。最好从编程的类比来理解。以Java API规范为例,类中包含了方法和包。...在Web开发中,API通常指的是从在线服务中检索信息的方式。API文档提供了URL列表、查询参数和其他关于如何向API发送请求的信息,并指示每个请求将返回什么样的响应。

    7.7K41

    使用ASP.NET Core开发GraphQL服务器 -- 预备知识(上)

    不灵活:随着API的演进,REST需要随时创建新的端点,所以REST API的端点增长速度很快;此外有版本和兼容性需要谨慎考虑。 而GraphQL,典型的结构是只有一个端点。...这个单端点就像API网关一样组织了多个数据源,这样就会更简单。...综上,使用GraphQL的好处是: 避免多重REST请求 向下兼容,无需考虑版本 可以对现有的数据源(例如REST API)进行包装 与开发语言无关 GraphQL查询 我通过Github的GraphQL...但是在windows上多少还是有些问题的,因为Alt+空格也会弹出浏览器的菜单?。。。。...查询参数  在GraphQL里,每个字段都可以有自己的参数。  直接看例子。下面这个例子里,我想查询登录名为facebook的仓库所有者: ?

    2.1K40

    REST API 设计最佳实践:如何构建、设计和使用 API ?

    因此我决定写篇文章分享一下,在设计 REST API 时的最佳实践。以下是关于设计优秀REST API 的一些建议、提示和指导,帮助您让消费者(以及开发人员)满意。 1....我将注意到:param 是一个URI参数(如ID或缩写)的占位符,你第一个想法可能是创建类似于这个的端点: GET: /books/:slug/generateBookCover/ 但是,在这里GET方法在语法上足以说明我们正在获取...我个人建议使用查询字符串参数直接过滤books资源: GET: /books?author=Cagan 这显然意味着:“获取所有名为Cagan 的作者所写的书”,对吧。 9....现在问题来了:如何将这样的功能融入REST API? 我的答案是:使用查询字符串(querystring)。 我认为使用查询字符串实现分页非常明显。它看起来像这样: GET: /books?...它基本上意味着: 我,服务器,已经理解了你的请求。虽然我还没有创建资源(尚未),但这没问题。

    2.2K40
    领券