Disqus работает только в том случае, если скрипты не соответствуют политике безопасности контента.

Я боролся с периодической проблемой с Disqus на странице блога. Проблема была трудно определить, поскольку она будет работать спорадически.

Удалось свести проблему к следующему:

  1. Если следующие сценарии не загружаются из-за политики безопасности содержимого, все работает нормально, и отображается iframe.

Ошибки консоли при загрузке disqus

  1. Добавление домена в список авторизованных доменов на Disqus позволило добиться следующего прогресса, и проблема теперь менее распространена, однако она все еще не идеальна, обновление страницы предотвратит загрузку iframe, обновите снова, и она появится!!

Ошибки консоли после добавления домена авторизации

Если у кого-нибудь есть идеи, как я могу заставить это работать должным образом, это будет очень признательно.


person Taylorsuk    schedule 23.12.2018    source источник


Ответы (1)


Судя по тому, что в вашем списке исключений CSP отсутствует несколько директив. Я бы предложил следующее:

  1. Используйте такие инструменты, как report-uri, чтобы сообщать о нарушениях CSP в вашем домене. Report-URI спасает жизнь, я говорю из своего опыта.

  2. Если вы впервые применяете политику CSP в своем приложении, начните с Только отчет CSP.

Заголовок ответа HTTP Content-Security-Policy-Report-Only позволяет веб-разработчикам экспериментировать с политиками, отслеживая (но не применяя) их эффекты. Эти отчеты о нарушениях состоят из документов JSON, отправляемых с помощью HTTP-запроса POST на указанный URI.

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

  1. Как только вы будете уверены в своей политике CSP, вы сможете создать политику CSP с большей уверенностью. Однако убедитесь, что вы по-прежнему сообщаете о нарушениях в report-uri или в свой журнал.

Многие из этих вещей основаны на пробах и ошибках, поскольку вы не знаете, какие сценарии используют ваши «доверенные» сторонние библиотеки. Вы также не можете контролировать изменение их кода/реализации под капотом. Таким образом, мониторинг помогает постоянно выявлять нарушения и предпринимать соответствующие действия.

person Ankit Vijay    schedule 23.12.2018