Проблема политики безопасности контента в Google recaptcha v2 - PullRequest
0 голосов
/ 16 апреля 2019

Я искал много вопросов по SO, связанных с этим. Но ничто не решает мою проблему. Я использую Google recaptcha v2 в приложении asp.net mvc5. Он отлично работает в Google Chrome. Но это показывает некоторую ошибку в браузерах Firefox и Edge. Я подозреваю, что это связано с заголовками политики безопасности контента.

Ошибка в Firefox

Content Security Policy: Ignoring “'unsafe-inline'” within script-src: ‘strict-dynamic’ specified

Content Security Policy: Ignoring “https:” within script-src: ‘strict-dynamic’ specified

Content Security Policy: Ignoring “http:” within script-src: ‘strict-dynamic’ specified

Ошибка в Edge

Безопасность изолированного iframe потенциально может быть нарушена, если разрешить доступ к сценарию и тому же источнику.

Из-за этой ошибки recaptcha не работает, поскольку время ожидания истекает каждый раз

Я пытался добавить такие заголовки csp в web.config

<system.webServer>
<httpProtocol>
    <customHeaders>
        <add name="Content-Security-Policy" value="script-src 'self' 'unsafe-inline' https://www.google.com https://www.google.com/recaptcha/api.js https://www.gstatic.com" />
    </customHeaders>
</httpProtocol>
</system.webServer> 

Но это не работает так же, как моя страница сломалась, так как все другие файлы были заблокированы браузером

1 Ответ

1 голос
/ 17 апреля 2019

Не похоже, что ошибка скрипта связана с CSP.Это не действительно ошибки, которые вы получаете;просто уведомления.

В CSP некоторые политики переопределяют другие политики, поэтому вы получаете уведомление о том, что политика A игнорируется, потому что вы используете политику B. Так зачем вообще ставить политику A, спросите вы?Для совместимости со старыми браузерами, которые не понимают политику B.

Например: я использую одноразовые номера CSP, но также вставляю «unsafe-inline».IE не понимает одноразовые номера, поэтому он использует правило «unsafe-inline».Современные браузеры игнорируют «unsafe-inline» и используют одноразовые номера.В консоли Firefox я получаю уведомление, похожее на то, что вы получаете

...