Cross-origin resource sharing

Cross-origin resource sharing (CORS) ocorre quando um script em um servidor envia uma solicitação Ajax para outro servidor. Cross-origin resource sharing também ocorre quando uma solicitação é enviada em um protocolo ou porta diferente para o mesmo servidor.

Cross-origin resource sharing viola a 'política de mesma origem', que está em vigor para evitar ataques de falsificação de solicitação entre sites. Embora a prevenção global de cookies para terminais /api/* evite esses ataques, navegadores ainda assim tentam impingir essa política. Todos os navegadores usam essa convenção, mas ela não se aplica aos mecanismos de solicitação manual, como cURL.

Navegadores detectam que você está tentando fazer uma solicitação a um servidor e inicialmente enviam uma solicitação de simulação. As solicitações de simulação são configuradas como uma solicitação OPTION com relação à mesma URL, mas também contêm o cabeçalho de Origem. O servidor deve enviar de volta outras informações, como tipos de solicitações permitidos, se cabeçalhos devem ser esperados na resposta da solicitação real e se a origem é aceita.

Se o cabeçalho 'Access-Control-Allow-Origin' da resposta da solicitação de simulação não corresponder ao cabeçalho de Origem da solicitação, o navegador o rejeita. Se o cabeçalho 'Access-Control-Allow-Origin' corresponder, o navegador continua com a solicitação. A resposta da solicitação deve passar pela mesma verificação de origem, caso a regra mude entre a solicitação de simulação e a real.

Gerenciamento de origens permitidas

O valor da origem que é enviado por seu navegador contém o protocolo seguido pelo nome do host e a porta, por exemplo:

http://192.0.2.0:8888

É possível interceptar solicitações enviadas por seu navegador para assegurar que você tenha o valor de origem correto. É possível incluir sua origem em uma lista de desbloqueio no console do QRadar® no arquivo /opt/qradar/webapps/console/restapi/allowed_origins.list As mudanças são detectadas e entram em vigor imediatamente. Esse arquivo contém uma lista separada por nova linha de origens permitidas. Cada entrada é testada com relação ao cabeçalho de origem que é enviado por navegadores durante as solicitações de simulação. Se uma entrada corresponder à origem (ou qualquer entrada for '*'), o navegador poderá fazer solicitações cross-origin resource sharing.

Uma convenção de navegador comum é enviar null como a origem quando o script é iniciado a partir de file://, incluindo '*' na lista de desbloqueio. Essa prática permite todas as origens e não é uma boa prática.