Come funziona admin-ajax.php?
Stiamo riscontrando alcuni problemi con uno sviluppatore esterno.
Vogliamo limitare l'accesso al sito wp-admin solo all'accesso interno (tramite VPN). Semplicemente per evitare che venga attaccato da utenti esterni. Possiamo enumerare gli amministratori dal sito e non vogliamo che siano vittime di phishing.
Il nostro sviluppatore sostiene che non possiamo farlo perché il sito deve avere la pagina di amministrazione accessibile esternamente per funzionare correttamente, in particolare la pagina admin-ajax.
Cosa fa la pagina admin-ajax.php?
Si trova nella sezione admin di WordPress. È accessibile dagli utenti finali senza autenticazione? È una pratica non sicura rendere questo file disponibile agli utenti esterni?
admin-ajax.php fa parte dell'API AJAX di WordPress, e sì, gestisce richieste sia dal backend che dal frontend. Non preoccuparti del fatto che si trovi nella cartella wp-admin. Anche io trovo che sia una posizione strana, ma di per sé non rappresenta un problema di sicurezza. Non capisco però come questo si colleghi all'"enumerare gli amministratori".
consiglieresti di spostare la pagina wp admin in modo che non sia accessibile esternamente? e sai se farlo potrebbe interrompere qualcosa con l'admin ajax?
nick
Non sono sicuro al 100% di cosa significhi, ma se richiedi che l'accesso ai file in wp-admin avvenga solo dall'IP della tua VPN, allora sì, potrebbe causare problemi con AJAX. Le chiamate AJAX provengono dal browser dell'utente, quindi utilizzano l'IP dell'utente.
s_ha_dum
Per gli utenti non autenticati e non fidati, dovrai fare due eccezioni specifiche per la tua VPN / Firewall / Apache .htaccess, che sono:
example.com/wp-admin/admin-post.phpexample.com/wp-admin/admin-ajax.php
Questi sono due endpoint automatici utilizzati frequentemente sia da WordPress stesso che da vari plugin.
Ecco una spiegazione di cosa fa admin-post.php:
admin-ajax.php funziona in modo molto simile e una spiegazione utile è disponibile qui.
Se vuoi limitare l'accesso al backend di WP (es: wp-admin), puoi semplicemente usare una regola .htaccess nella directory wp-admin.
Leggi questo articolo per una panoramica generale: Proteggere con password una directory usando .htaccess
Consulta anche questo argomento per il tuo caso specifico: Proteggere con password /wp-admin/
Oppure se preferisci farlo tramite IP: http://betterwp.net/wordpress-tips/protect-wordpress-wp-admin-folder/
skim-