在前面使用admin-ajax.php安全吗?

时间:2018-04-17 作者:Badr

我想知道使用admin ajax是否安全。php用于前端的ajax请求。

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

我想知道使用admin ajax是否安全。php用于前端的ajax请求。

将它作为协议用于AJAX请求从根本上讲并没有什么不安全之处。

那么它安全吗it depends

这取决于AJAX请求处理程序在另一端做了什么,以及是否安全地构建它。

通过以下方式构建安全的AJAX处理程序admin-ajax.php 取决于您的处理程序所做的工作和执行的检查,例如nonce、能力检查、验证、清理等

记住,您需要自己实施所有安全检查

安全vs什么

其他选项:

主题或插件中的独立文件,或根WP文件夹中的独立文件,这是一个安全漏洞,因为现在即使主题或插件被禁用,也有一个始终处于活动状态的独立端点。此外,它需要引导WP,迫使您编写文件,使其只能在特定位置工作,否则它将不知道需要加载的文件在哪里,从而使其变得脆弱。它还需要包含一组常量,以便WordPress正确引导。

此外,您还必须自己实现所有检查,额外的好处是该文件只能在一个位置工作。做到这一点非常困难,需要与核心贡献者同等的技能。大多数开发人员都不知道他们可能需要做的一些事情,包括但不限于:

输入验证

  • 输入清理
  • 用户能力检查
  • 临时验证
  • 用户身份验证
  • 输出检查
  • 输出转义
  • 显示错误消息
  • 重定向
  • example.com/site1 有一个用于联系使用独立文件的管理员的插件,那么这将适用于多站点上的所有站点,即使该插件已停用。现在,任何人都可以联系任何站点的管理员,即使是那些您不希望使用该选项的站点。

    此外,没有提供调试支持,因此如果出现问题,您唯一的帮助就是PHP错误日志。

    导致重大问题的独立文件的一个很好的示例是timthumb.php.

    页面模板这需要创建一个具有特定URL的页面,然后将其配置为使用页面模板。

    此外,这需要管理AJAX和独立文件所需的所有检查。从好的方面来看,您不需要引导WordPress。

    REST API端点使用专门为javascript请求构建的API。此外,它更容易使用。您可以指定端点采用的参数、需要的功能等,如果您告诉它预期的内容,它将为您完成所有转义、验证和清理。

    如果您没有满足请求所需的要求,它会告诉您在响应中做错了什么,例如,它会告诉您不能做什么。除非您将其编程为,否则管理AJAX不会。

    此外,它还可以发现端点(但仅限于能够使用端点的用户),提供过滤和覆盖其他插件的机制,并避免其他选项的所有缺点。

    那么它安全吗

    这要看情况而定,这个问题本身太简单了。

    但是如果你想要一个正确的安全答案,那么不,没有什么可以被认为是百分之百安全的,这是不可能的。

    使用管理ajax是好是坏。php

    这是一种良好的做法,REST API endpoints built using the WP APIs are better though in every way imaginable

  • 结束

    相关推荐

    如何在AJAX搜索中获取页面列表

    我正在努力跟随this 解决方案,这是一种工作,但我需要一个页面列表,而不是帖子。这是我正在使用wordpress的Codex信息处理的代码,但我没有得到任何结果。功能。phpadd_action(\'wp_ajax_data_fetch\' , \'data_fetch\'); add_action(\'wp_ajax_nopriv_data_fetch\',\'data_fetch\'); function data_fetch(){ $the_query = new