¿La API REST de Wordpress con CORS habilitado representa un riesgo de seguridad?

4

Después de una inspección de seguridad de un sitio que ejecuta Wordpress con una API REST, el escáner marcó la ruta / wp-json / como una vulnerabilidad debido a una política CORS muy flexible que permite a terceros interactuar con el servicio. Sin embargo, no puedo encontrar una fuente concreta de información confidencial que pueda ser robada sin requerir más información de la víctima. Por ejemplo, la API REST de Wordpress ofrece varias formas de autenticar a los usuarios, así que pensé que tal vez una de ellas sería vulnerable.

  1. autenticación basada en cookies. Parece ser útil solo para temas y complementos, y el usuario debe proporcionar una licencia para tener acceso a los recursos.
  2. autenticación básica. Requiere un encabezado codificado en base 64 con las credenciales del usuario.
  3. oAuth. Debe configurarse proporcionando tokens a los clientes y registrando a esos clientes en el servicio principal y creo que debe proporcionar este token en cada solicitud.

Si tiene otras ideas o correcciones, hágamelo saber.

¿Existe algún riesgo de seguridad al tener una API REST con CORS habilitado?

ACTUALIZAR :

Como aclaración adicional, en este caso particular, las restricciones Access-Control-Allow-Origin: * se omiten mediante programación al establecer el encabezado Access-Control-Allow-Origin en función del encabezado Origin de la solicitud. Por lo general, esto sería suficiente para tener inquietudes, pero en este caso, no estoy seguro si los mecanismos de autenticación ofrecidos por la API REST son suficientes para protegerse contra las vulnerabilidades relacionadas con CORS.

    
pregunta Robert Smith 19.12.2016 - 05:20
fuente

1 respuesta

2

CORS es un mecanismo comúnmente mal entendido e incluso algunos escáneres de seguridad se equivocan. Por ejemplo, algunos marcarán Access-Control-Allow-Origin: * como una preocupación seria, sin darse cuenta de que el navegador no enviará credenciales (por ejemplo, cookies) con la solicitud (no puede combinar ese valor de comodín con Access-Control-Allow-Credentials: true ).

Es el caso más común, es difícil de decir si eso es lo que se informó en su caso sin los detalles de su política de CORS.

El principal riesgo que se me ocurre, de tener una API REST con CORS sería si se incluyera un origen no confiable en ACAO, usted tenía ACAC: verdadero conjunto y un usuario visitó el origen no confiable mientras estaba autenticado en el sitio y una solicitud se pasó con sus cookies al sitio, lo que permitió recuperar el contenido protegido, ya que puede ver una configuración bastante complicada.

Si desea obtener más información sobre CORS, le recomiendo que lea esto y esto . También vale la pena señalar que la API REST de Wordpress puede tener algunos problemas de seguridad, por ejemplo, recuperación de nombres de usuario válidos sin autenticación

    
respondido por el Rоry McCune 21.12.2016 - 13:33
fuente

Lea otras preguntas en las etiquetas