Pesquisa de site

javascript - Política de Segurança de Conteúdo: As configurações da página bloquearam o carregamento de um recurso


Estou usando CAPTCHA ao carregar a página, mas ele está sendo bloqueado por algum motivo de segurança.

Estou enfrentando este problema:

    Content Security Policy: The page's settings blocked the loading
    of a resource at
    http://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit
    ("script-src http://test.com:8080 'unsafe-inline' 'unsafe-eval'").

Eu usei o seguinte JavaScript e meta tag:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
<script src="http://www.google.com/recaptcha/api.js?onload=myCallBack&render=explicit" async defer></script>

Resposta #1

Você disse que só pode carregar scripts do seu próprio site (self). Então, você tentou carregar um script de outro site (www.google.com) e, por ter restringido isso, não pode. Esse é todo o ponto da Política de Segurança de Conteúdo (CSP).

Você pode mudar sua primeira linha para:

<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval' http://www.google.com">

Ou, alternativamente, pode valer a pena remover essa linha completamente até você descobrir mais sobre CSP. Seu CSP atual é bastante flexível de qualquer forma (permitindo unsafe-inline, unsafe-eval e um default-src de *), então provavelmente não está adicionando muito valor, para ser honesto.

Resposta #2

Com meu projeto ASP.NET Core Angular rodando no Visual Studio 2019, às vezes recebo esta mensagem de erro no console do Firefox:

Política de Segurança de Conteúdo: As configurações da página bloquearam o carregamento de um recurso em linha (“default-src”).

No Chrome, a mensagem de erro é em vez disso:

Falha ao carregar o recurso: o servidor respondeu com um status de 404()

No meu caso, não tinha nada a ver com minha Política de Segurança de Conteúdo, mas sim simplesmente o resultado de um erro de TypeScript da minha parte.

Verifique a janela de saída do seu IDE para um erro de TypeScript, como:

> ERROR in src/app/shared/models/person.model.ts(8,20): error TS2304: Cannot find name 'bool'.
>
> i 「wdm」: Failed to compile.

Nota: Como esta pergunta é o primeiro resultado no Google para esta mensagem de erro.

Resposta #3

Eu tive um tipo de erro semelhante. Primeiro, tentei adicionar as meta tags no código, mas não funcionou.

Descobri que no servidor web nginx você pode ter uma configuração de segurança que pode bloquear a execução de código externo:

Security directives
server_tokens off;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'  https://ajax.googleapis.com  https://ssl.google-analytics.com https://assets.zendesk.com https://connect.facebook.net; img-src 'self' https://ssl.google-analytics.com https://s-static.ak.facebook.com https://assets.zendesk.com; style-src 'self' 'unsafe-inline' https://assets.zendesk.com; font-src 'self' https://fonts.gstatic.com  https://themes.googleusercontent.com; frame-src https://player.vimeo.com https://assets.zendesk.com https://www.facebook.com https://s-static.ak.facebook.com https://tautt.zendesk.com; object-src 'none'";

Verifique a Política de Segurança de Conteúdo. Você pode precisar adicionar a referência da fonte.

Artigos relacionados