Compartición de recursos entre orígenes
El intercambio de recursos entre orígenes ( CORS ) se produce cuando un script de un servidor envía una solicitud Ajax a otro servidor. La compartición de recursos entre orígenes también se produce cuando se envía una solicitud en un protocolo o puerto diferente al mismo servidor.
La compartición de recursos entre orígenes viola la 'misma política de origen', que está en vigor para evitar ataques de falsificación de solicitud entre sitios. Aunque la prevención global de cookies para puntos finales de /api/* evita estos ataques, los navegadores siguen intentando aplicar esta política. Todos los navegadores utilizan este convenio, pero no se aplica a mecanismos de solicitud manual como cURL.
Los navegadores detectan que está intentando realizar una solicitud a un servidor e inicialmente envía una solicitud previa. Las solicitudes de verificación previa se establecen como una solicitud OPTION en la misma dirección URL, pero también contienen el encabezado Origen. El servidor debe devolver otra información como, por ejemplo, los tipos de solicitud permitidos, si se deben esperar cabeceras en la respuesta de la solicitud real y si se acepta el origen.
Si la cabecera 'Access-Control-Allow-Origin' de la respuesta de la solicitud previa no coincide con la cabecera Origen de la solicitud, el navegador la rechaza. Si la cabecera 'Access-Control-Allow-Origin' coincide, el navegador continúa con la solicitud. La respuesta de la solicitud debe pasar la misma comprobación de origen, en caso de que la regla cambie entre el prevuelo y la solicitud real.
Gestión de orígenes permitidos
El valor de origen enviado por el navegador contiene el protocolo seguido por el nombre de host y el puerto, por ejemplo:
http://192.0.2.0:8888
Puede interceptar las solicitudes enviadas por el navegador para asegurarse de que tiene el valor de origen correcto. Puede añadir su origen a una lista blanca en la consola deQRadar® en el archivo /opt/qradar/webapps/console/restapi/allowed_origins.list . Los cambios se detectan y entran en vigor inmediatamente. Este archivo contiene una lista separada por saltos de línea de orígenes permitidos. Cada entrada se prueba con respecto a la cabecera de origen que envían los navegadores durante las solicitudes previas al vuelo. Si una entrada coincide con el origen (o cualquier entrada es '*'), el navegador puede realizar solicitudes de uso compartido de recursos entre orígenes.
Un convenio de navegador común es enviar null como origen cuando el script se inicia desde file:// añadiendo '*' a la lista blanca. Esta práctica permite todos los orígenes y no es una buena práctica.