Logo da CarameloSec - Plataforma de análise de segurança automatizada

CORS Access-Control-Allow-Origin Value

Checker ID: #15

v1.0.0-alpha

CORS Access-Control-Allow-Origin Value

Descrição

Essa é a regra que funciona como o “porteiro” do seu servidor, definindo quais origens (sites/aplicações) têm permissão para solicitar dados a ele.

Importância

Se você deixar isso aberto (*), qualquer site malicioso que o seu usuário visitar pode fazer requisições ao seu servidor e acessar dados protegidos. Você deve restringir isso para apenas as origens legítimas que precisam consumir sua API ou dados.

Requisitos de Sucesso
  • • O cabeçalho Access-Control-Allow-Origin deve estar presente e definir o domínio do website sob teste como valor.

Cenários de Teste
Cenário Aprovado: O cabeçalho Access-Control-Allow-Origin do site https://www.test.example está presente e contém o valor https://www.test.example:
HTTP/1.1 200 OK
Date: Wed, 17 Dec 2025 11:45:00 GMT
Server: nginx/1.18.0
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Strict-Transport-Security: max-age=31536000
Access-Control-Allow-Origin: https://www.test.example
Last-Modified: Mon, 01 Dec 2025 10:00:00 GMT
ETag: "5f8c-60d4-1a2b"
Cache-Control: max-age=3600
Content-Length: 1540
Cenário Reprovado: O cabeçalho Access-Control-Allow-Origin está ausente (o comportamento padrão bloqueia requisições cross-origin, mas a ausência explícita pode indicar configuração incompleta):
HTTP/1.1 200 OK
Date: Wed, 17 Dec 2025 11:45:00 GMT
Server: nginx/1.18.0
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Strict-Transport-Security: max-age=31536000
Last-Modified: Mon, 01 Dec 2025 10:00:00 GMT
ETag: "5f8c-60d4-1a2b"
Cache-Control: max-age=3600
Content-Length: 1540
Cenário Reprovado: O cabeçalho Access-Control-Allow-Origin aponta para um domínio diferente do esperado (pode ser legítimo em arquiteturas backend/frontend separados, mas requer verificação):
HTTP/1.1 200 OK
Date: Wed, 17 Dec 2025 11:45:00 GMT
Server: nginx/1.18.0
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Strict-Transport-Security: max-age=31536000
Access-Control-Allow-Origin: https://www.test002.example
Last-Modified: Mon, 01 Dec 2025 10:00:00 GMT
ETag: "5f8c-60d4-1a2b"
Cache-Control: max-age=3600
Content-Length: 1540
Cenário Reprovado: O cabeçalho Access-Control-Allow-Origin contém o valor * (qualquer site pode fazer requisições ao servidor — nunca use isso em endpoints com dados de usuário):
HTTP/1.1 200 OK
Date: Wed, 17 Dec 2025 11:45:00 GMT
Server: nginx/1.18.0
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
Strict-Transport-Security: max-age=31536000
Access-Control-Allow-Origin: *
Last-Modified: Mon, 01 Dec 2025 10:00:00 GMT
ETag: "5f8c-60d4-1a2b"
Cache-Control: max-age=3600
Content-Length: 1540