CSP Script-Src Value
Checker ID: #12
CSP Script-Src Value
Controla quem pode executar Scripts (JavaScript) no navegador do usuário. É a principal defesa contra XSS (injeção de código malicioso).
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.
• 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-.
HTTP/1.1 200 OK
Content-Security-Policy: script-src 'nonce-rAnd0mString';
Content-Type: text/html; charset=UTF-8
HTTP/1.1 200 OK
Content-Security-Policy: script-src 'self' https://analytics.google.com;
Content-Type: text/html; charset=UTF-8
HTTP/1.1 200 OK
Content-Security-Policy: script-src 'self' 'unsafe-inline';
Content-Type: text/html; charset=UTF-8
HTTP/1.1 200 OK
Content-Security-Policy: script-src https:;
Content-Type: text/html; charset=UTF-8
CSP Script-Src Value
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.
É 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).
• 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).
Content-Security-Policy: script-src 'self' https://trusted.example;
Content-Security-Policy: script-src 'self' *.trusted.example https://trusted.example 'unsafe-inline';
Content-Security-Policy: script-src https:;