Fermare admin-ajax?

15 mar 2018, 00:55:00
Visualizzazioni: 15.7K
Voti: 7

È possibile semplicemente disabilitare/bloccare admin-ajax.php dall'esecuzione?

Ho cercato nella documentazione di WordPress. Ho cercato su Google. Ho cercato in questo forum. Non ho trovato risposta.

Ho anche provato questo, ma non funziona:

// Funzione per fermare admin-ajax  
function stop_ajax()  
{  
    define( 'DOING_AJAX', false );  
}  
add_action( 'admin_init', 'stop_ajax' );  
2
Commenti

Cosa intendi con "disabilitare/fermare admin-ajax.pl dall'esecuzione"? Cosa dovrebbe essere fatto se una tale richiesta viene inviata ed è disabilitata?

Krzysiek Dróżdż Krzysiek Dróżdż
15 mar 2018 01:04:51

Non è chiaro se ti riferisci al wordpress heartbeat, ma in questo caso, ci sono alcuni buoni tutorial in rete che spiegano come disabilitarlo o meglio, come limitarlo. Questo è un buon punto di partenza https://www.siteground.com/tutorials/wordpress/limit-heartbeat/

Alex Sancho Alex Sancho
15 mar 2018 01:07:28
Tutte le risposte alla domanda 1
0

La prima cosa che admin-ajax.php fa è definire DOING_AJAX. Successivamente, carica wp-load.php. Esegue altre operazioni, e la prima cosa che incontra e su cui hai il controllo è wp-config.php.

Quindi, se vuoi bloccare tutte le richieste AJAX, puoi aggiungere il seguente codice al tuo file wp-config.php.

if( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
  wp_die( '0', 400 );
}

Se non hai accesso al file wp-config, o vuoi farlo tramite un plugin, puoi farlo anche in questo modo. Non è necessario aggiungerlo a un hook, perché se si tratta di una richiesta AJAX, DOING_AJAX è già definito.

/**
 * Plugin Name: Stop Ajax
 */
if( defined( 'DOING_AJAX' ) && DOING_AJAX ) {
  wp_die( '0', 400 );
}

Ci saranno effetti collaterali se stai usando plugin o temi che richiedono AJAX, quindi fai attenzione.

15 mar 2018 02:28:39