He actualizado mi WordPress a 4.7.1
, y después de eso he intentado enumerar a los usuarios a través de la API REST, que debería solucionarse, pero pude recuperar a los usuarios.
https://mywebsite.com/wp-json/wp/v2/users
Salida:
[{"id":1,"name":"admin","url":"","description":"","link":"https:\/\/mywebsite\/author\/admin\/","slug":"admin","avatar_urls":{"24": ...
Registro de cambios de la última versión:
La API REST expuso los datos del usuario para todos los usuarios que habían creado una publicación de un tipo de publicación pública. WordPress 4.7.1 limita esto a solo los tipos de publicaciones que han especificado que deben mostrarse dentro de la API REST. Reportado por Krogsgard y Chris Jean.
Después de instalar el complemento Disable REST API
, parece que todo funciona bien, pero no me gusta usarlo para cada pequeño complemento.
El resultado después de usar el complemento es:
{"code":"rest_cannot_access","message":"Only authenticated users can access the REST API.","data":{"status":401}}
¿Cómo puedo solucionar este problema sin usar el complemento, o por qué, incluso después de actualizar, todavía existe?
EDITAR 30.9.2017
Me di cuenta de que hay un conflicto entre el contact 7
complemento Disable REST API
y eso te dará un 401 unauthorized
error.
Cuando intente enviar un mensaje a través del contact 7
formulario, hará una solicitud
wp-json/contact-form-7/v1/contact-forms/258/feedback
y deshabilitar eso no es una buena idea.
Respuestas:
Use este fragmento de código, ocultará la lista de usuarios y dará 404 como resultado, mientras que el resto de las llamadas de la API siguen ejecutándose como estaban.
Puede consultar este enlace en el repositorio de gitHub de WP_REST_API para obtener más detalles sobre el mismo.
::ACTUALIZAR::
Para eliminar todos los puntos finales predeterminados de la API REST, debe agregar el siguiente código:
<?php remove_action('rest_api_init', 'create_initial_rest_routes', 99); ?>
fuente
functions.php
su tema.Elimine el enlace API del encabezado HTML si lo desea.
Luego requiera autenticación para todas las solicitudes.
Esto te dejará con el mensaje deseado.
Ahora, para detener la enumeración, podría usar algo como esto.
Echa un vistazo a toda la publicación para obtener más técnicas.
fuente
Puedes arreglarlo a través de nginx / apache config:
fuente
Para poder solucionar esto, primero debe conocer la fuente del problema.
Avíseme si esto le indicó la dirección correcta.
Una manera sucia de resolver esto es simplemente bloquear la url debajo de tus .htacces. https://mywebsite.com/wp-json/wp/v2/users
fuente