caramelosec. SCAN

CSP Script-Src Value

Checker ID: #12

v2.0.0-alpha

CSP Script-Src Value

Descrição

Controla quem pode executar Scripts (JavaScript) no navegador do usuário. É a principal defesa contra XSS (injeção de código malicioso).

Importância

Aqui validamos a qualidade da sua lista de convidados. Usar 'nonce-...' (uma senha única criptográfica) ou hash é muito mais seguro do que usar whitelists de domínios, pois domínios confiáveis podem ser comprometidos. Prefira sempre nonces.

Requisitos de Sucesso
  • • Proibido: Valores perigosos como 'unsafe-inline', 'unsafe-eval', *, http:, https: (genérico).

  • • Permitido: 'self', URLs específicas (https://apis.google.com), ou (o ideal) nonce- e hashes sha256-.

Cenários de Teste
Cenário Aprovado: Uso de Nonce (Nível Elite):
HTTP/1.1 200 OK
Content-Security-Policy: script-src 'nonce-rAnd0mString';
Content-Type: text/html; charset=UTF-8
Cenário Aprovado: Uso de Whitelist Específica:
HTTP/1.1 200 OK
Content-Security-Policy: script-src 'self' https://analytics.google.com;
Content-Type: text/html; charset=UTF-8
Cenário Reprovado: Uso de 'unsafe-inline' (Permite qualquer script solto no HTML):
HTTP/1.1 200 OK
Content-Security-Policy: script-src 'self' 'unsafe-inline';
Content-Type: text/html; charset=UTF-8
Cenário Reprovado: Uso de https genérico (Permite qualquer site seguro, inclusive os de hackers):
HTTP/1.1 200 OK
Content-Security-Policy: script-src https:;
Content-Type: text/html; charset=UTF-8
v1.0.0-alpha

CSP Script-Src Value

Descrição

Essa é a regra mais importante aplicada pelo “segurança da balada” (Content Security Policy – CSP), pois controla quem pode “subir ao palco” e executar código dentro do navegador do usuário. Na prática, ela define de quais sites o sistema pode carregar scripts JavaScript.

Importância

É aqui que você evita o XSS, bloqueando códigos de origem desconhecida e maliciosa que poderiam roubar dados, alterar páginas ou assumir sessões de usuários. Você deve listar explicitamente os domínios confiáveis (ex: seu site, Google Analytics).

Requisitos de Sucesso
  • • O cabeçalho Content-Security-Policy deve conter o parâmetro script-src.

  • • O parâmetro script-src não deve conter os seguintes valores (pois são como deixar a chave de casa embaixo do tapete): 'unsafe-inline' (scripts soltos no HTML); 'unsafe-eval' (transformar texto em script); * (curinga, anarquia total, sem restrições); curingas de domínio (todos os subdomínios, ex.: *.example.com); data: (scripts embutidos em dados, ex.: imagens); http: (qualquer script sem criptografia); https: (qualquer script com criptografia); blob: (scripts temporários criados no navegador).

Cenários de Teste
Cenário Aprovado: O parâmetro script-src contém uma lista de valores explicitamente permitidos e seguros:
Content-Security-Policy: script-src 'self' https://trusted.example;
Cenário Reprovado: O parâmetro script-src contém alguns valores abrangentes e inseguros:
Content-Security-Policy: script-src 'self' *.trusted.example https://trusted.example 'unsafe-inline';
Cenário Reprovado: O parâmetro script-src contém um valor abrangente e inseguro:
Content-Security-Policy: script-src https:;