Estoy tratando de entender cómo usar CORS y estoy confundido acerca de lo que hace el Access-Control-Allow-Credentialsencabezado.
La documentación dice
Indica si la respuesta a la solicitud se puede exponer o no cuando el indicador de credenciales es verdadero.
Pero no entiendo lo que significa la respuesta "estar expuesto".
¿Alguien puede explicar qué hace realmente este encabezado configurado como verdadero (junto con el indicador de credenciales establecido como verdadero)?
http-headers
cors
Nate
fuente
fuente

Respuestas:
Por defecto, CORS no incluye cookies en solicitudes de origen cruzado. Esto es diferente de otras técnicas de origen cruzado como JSON-P. JSON-P siempre incluye cookies con la solicitud, y este comportamiento puede conducir a una clase de vulnerabilidades llamada falsificación de solicitud entre sitios , o CSRF.
Para reducir la posibilidad de vulnerabilidades CSRF en CORS, CORS requiere que tanto el servidor como el cliente reconozcan que está bien incluir cookies en las solicitudes. Hacer esto hace que las cookies sean una decisión activa, en lugar de algo que ocurre pasivamente sin ningún control.
El código de cliente debe establecer la
withCredentialspropiedad en laXMLHttpRequestquetruecon el fin de dar permiso.Sin embargo, este encabezado solo no es suficiente. El servidor debe responder con el
Access-Control-Allow-Credentialsencabezado. Responder con este encabezadotruesignifica que el servidor permite que se incluyan cookies (u otras credenciales de usuario) en las solicitudes de origen cruzado.También debe asegurarse de que su navegador no esté bloqueando las cookies de terceros si desea que funcionen las solicitudes con credenciales cruzadas.
Tenga en cuenta que independientemente de si realiza solicitudes del mismo origen o de origen cruzado, debe proteger su sitio de CSRF (especialmente si su solicitud incluye cookies).
fuente
withCredentialsestá configurada, pero luego, cuando reciba la respuesta, si se estableció withCredentials, solo entregará / expondrá el resultado al javascript de llamada si la respuesta tiene el Acceso -Control-Allow-Credentials conjunto de encabezados. Si no hay encabezado, no expone la respuesta, de manera efectiva la oculta.