http – Ocultar los puntos finales de la API REST de WordPress v2 de la vista pública

Pregunta:

Me gustaría comenzar a usar la API REST de WordPress v2 para consultar información de mi sitio. Me di cuenta de que cuando visito una URL de punto final directamente, puedo ver todos los datos públicamente. También he visto que muchos tutoriales mencionan el uso de servidores de prueba o locales en lugar de sitios en vivo.

Mis preguntas son:

  • ¿Está destinado a ser utilizado en sitios en producción?
  • ¿Existe un riesgo de seguridad al permitir que cualquier persona vea los puntos finales, como /wp-json/wp/v2/users/ que muestra todos los usuarios registrados en el sitio?
  • ¿Es posible permitir que solo los usuarios autorizados accedan a un punto final?

Quiero asegurarme de seguir las mejores prácticas con respecto a la seguridad, por lo que cualquier consejo sería útil. Los documentos de la API mencionan la autenticación, pero no estoy seguro de cómo evitar que se acceda directamente a la URL. ¿Cómo suelen configurar los demás estos datos para que puedan acceder a ellos aplicaciones externas sin exponer demasiada información?

Respuesta:

¿Está destinado a ser utilizado en sitios en producción?

Si. Muchos sitios ya lo han estado usando .

¿Existe un riesgo de seguridad al permitir que cualquier persona vea los puntos finales, como / wp-json / wp / v2 / users / que muestra todos los usuarios registrados en el sitio?

No. Las respuestas del servidor no tienen nada que ver con la seguridad, nada que pueda hacer con una pantalla en blanco o una respuesta de solo lectura.

Sin embargo, si sus sitios permiten contraseñas débiles, existen algunos problemas . Pero es la política de su sitio, la API REST no sabe nada al respecto.

¿Es posible permitir que solo los usuarios autorizados accedan a un punto final?

Si. Puede hacerlo utilizando la devolución de llamada de permiso .

Por ejemplo:

if ( 'edit' === $request['context'] && ! current_user_can( 'list_users' ) ) {
    return new WP_Error( 'rest_forbidden_context', __( 'Sorry, you cannot view this resource with edit context.' ), array( 'status' => rest_authorization_required_code() ) );
}

¿Cómo suelen configurar los demás estos datos para que puedan acceder a ellos aplicaciones externas sin exponer demasiada información?

Esta pregunta es difícil de responder porque no sabemos qué / cuándo es demasiada información . Pero podemos seguir estrictamente las referencias de API y las hojas de trucos de seguridad para evitar situaciones no deseadas.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım