> For the complete documentation index, see [llms.txt](https://ssd.mrw0l05zyn.cl/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ssd.mrw0l05zyn.cl/recomendaciones/cors-cross-origin-resource-sharing.md).

# CORS (Cross-Origin Resource Sharing)

## Descripción

Cuando el valor del encabezado "Access-Control-Allow-Origin" se establece en "\*" (asterisco) o cuando el valor del encabezado "Origin" se refleja en el valor del encabezado "Access-Control-Allow-Origin", el recurso permite la interacción bidireccional desde cualquier dominio (sitios web de terceros). Confiar en orígenes arbitrarios desactiva la política del mismo origen (same-origin policy / SOP). A menos que la respuesta consista exclusivamente en contenido público no protegido, es factible que esta configuración pueda generar un potencial riesgo de seguridad en determinados contextos.

## Recomendaciones

Asociar una lista de validación (lista blanca) para "Access-Control-Allow-Origin" que identifique los dominios confiables, restringiendo así el acceso sólo para dominios autorizados.

* Evite usar el valor wildcard "\*" (asterisco) o valor "null" (nulo) para "Access-Control-Allow-Origin".
* Evite reflejar dinámicamente los orígenes (encabezado "Origin") de solicitudes entre dominios para el encabezado "Access-Control-Allow-Origin".
* Utilice "Access-Control-Allow-Methods" para especificar que métodos son válidos para los dominios autorizados. Es posible que algunos solo necesiten consultar el recurso, mientras otros necesiten actualizar.

## Referencias

* [OWASP Web Security Testing Guide (WSTG)](https://owasp.org/www-project-web-security-testing-guide/v41/4-Web_Application_Security_Testing/11-Client_Side_Testing/07-Testing_Cross_Origin_Resource_Sharing)
* [PortSwigger](https://portswigger.net/web-security/cors)
