alexsancho/wp-admin-no-ajax

一个WordPress插件,它简化了WP AJAX流程,并将请求定向到前端而不是管理后端。

安装: 93

依赖者: 0

建议者: 0

安全性: 0

星标: 1

关注者: 4

分支: 1

开放问题: 0

类型:wordpress-plugin

v1.0.0 2018-02-09 17:49 UTC

This package is auto-updated.

Last update: 2024-09-14 19:31:32 UTC


README

一个WordPress插件,它改变WP AJAX流程,并将ajax请求重写为自定义URL,而不是后端的/wp-admin/admin-ajax.php

安装

建议通过composer在WP项目中安装

$ composer require alexsancho/wp-admin-no-ajax

使用案例

  • 将所有admin-ajax.php查询重写为自定义URL,以便您只允许/wp-admin/对特定的IP地址。
  • 您可以使用此方法混淆试图利用admin-ajax.php漏洞的机器人。

配置

变量

此插件URL默认为/admin-no-ajax/。您可以使用过滤器来更改它,或者您可以通过以下方式自行设置默认值:

// This turns the no admin ajax url to -> /ajax/
define('WP_ADMIN_NO_AJAX_URL','ajax');

注意:此处设置的值也可以被过滤,这只是为了设置自定义URL的起点。

注意2:在插件安装和进行其他更改后,请确保刷新您的固定链接,只需转到设置 > 固定链接 > 并保存即可,无需进行任何修改。

钩子和过滤器

您可以使用过滤器admin-no-ajax/keyword来自定义URL。

<?php

// This changes /admin-no-ajax/ -> /ajax/
add_filter( 'admin-no-ajax/keyword', 'my_custom_admin_no_ajax_url' );
function my_custom_admin_no_ajax_url( $ajax_url ) {
    return "ajax";
}

您可以使用admin-no-ajax/beforeadmin-no-ajax/before/{action}在ajax调用之前运行命令。

<?php
// Writes log entries after hearthbeat action for debugging
do_action( 'admin-no-ajax/before/heartbeat' , 'my_custom_admin_no_ajax_debug' );
function my_custom_admin_no_ajax_debug() {
    error_log( 'DEBUG | heartbeat action was run by: '.$_SERVER[“REMOTE_ADDR”] );
}