В моем приложении Angular
я получаю следующую ошибку, когда пытаюсь использовать reCAPTCHA2
.
vendor.js:184374 Refused to load the script 'https://www.google.com/recaptcha/api.js?onload=ngx_captcha_onload_callback&render=explicit&hl=en' because it violates the following Content Security Policy directive: "script-src 'self' 'unsafe-inline' 'unsafe-eval'". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.
Я использую этот Angular
вариант - https://enngage.github.io/ngx-captcha/
Как я могу решить проблему? Моя текущая политика безопасности contentSecurityPolicy = "default-src 'self' ; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline' ;img-src 'self' data: ; worker-src blob:"
Я не хочу открывать веб-приложение для всех типов сценариев.
Попробуйте изменить его следующим образом:
contentSecurityPolicy = "default-src 'self' https://www.gstatic.com/recaptcha/ https://www.gstatic.com/recaptcha/ ; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline' ;img-src 'self' data: ; worker-src blob:"
Я только что добавил:
https://www.gstatic.com/recaptcha/ https://www.gstatic.com/recaptcha/
Спасибо. Я добавил script-src https://www.google.com/recaptcha/ https://www.gstatic.com/recaptcha/
и `frame-src google.com/recaptcha`, что очень близко к вашему ответу. Я полагаю, что ваш тоже будет работать.
Привет, вы пропустили www
и косую черту в конце, это должно бытьframe-src www.google.com/recaptcha/
(/recaptcha/
— это имя папки, а не имя файла). Может быть, более безопасно использовать варианты с www и без www одновременно.
Это может помочь: stackoverflow.com/questions/39853162/…