¿Cómo funciona admin-ajax.php?
Estamos teniendo algunos problemas con un desarrollador externo.
Queremos limitar el acceso al sitio wp-admin
solo para acceso interno (a través de VPN). Simplemente para que no sea atacado por usuarios externos. Podemos enumerar los administradores desde el sitio y no queremos que sean víctimas de phishing.
Nuestro desarrollador dice que no podemos hacer eso porque el sitio necesita tener la página de administración accesible externamente para que funcione, específicamente la página admin-ajax
.
¿Qué hace la página admin-ajax.php
?
Está ubicada en la sección de administración de WordPress. ¿Los usuarios finales acceden a ella sin autenticación? ¿Es una práctica insegura tener esto disponible para usuarios externos?
admin-ajax.php
es parte de la API AJAX de WordPress, y sí, maneja solicitudes tanto del backend como del frontend. No te preocupes por el hecho de que esté en wp-admin
. Yo también creo que es un lugar extraño para ello, pero no es un problema de seguridad en sí mismo. No sé cómo esto se relaciona con "enumerar los administradores".

¿recomendarías mover la página de administración de WordPress para que no esté disponible externamente? y ¿sabes si hacerlo podría interrumpir algo con el ajax del administrador?

No estoy 100% seguro de lo que esto significa, pero si requieres que el acceso a los archivos en wp-admin
sea desde la IP de tu VPN, entonces sí, eso podría causar problemas con AJAX. Las llamadas AJAX provienen del navegador del usuario, por lo que vienen desde la IP del usuario.

Para usuarios no autenticados y no confiables, querrás hacer dos excepciones específicas en tu VPN / Firewall / Apache .htaccess
, que son:
example.com/wp-admin/admin-post.php
example.com/wp-admin/admin-ajax.php
Estos son dos endpoints "mágicos" utilizados frecuentemente tanto por el núcleo de WordPress como por varios plugins.
Aquí hay una explicación de lo que hace admin-post.php
:
admin-ajax.php
funciona de manera muy similar, y una explicación útil está aquí.

Si deseas limitar el acceso al backend de WP (ej: wp-admin
), simplemente usa una regla en .htaccess
en el directorio wp-admin
.
Consulta este artículo para una visión general: Proteger con contraseña un directorio usando .htaccess
También revisa este tema para tu caso específico: Protegiendo con contraseña /wp-admin/

O si prefieres hacerlo por IP: http://betterwp.net/wordpress-tips/protect-wordpress-wp-admin-folder/
