Как исправить ошибку 403 при загрузке script.js Fathom Analytics с CSP?
У меня есть строгая CSP (Content-Security-Policy), позволяющая
в
script-src 'self' 'nonce-%{UNIQUE_ID}e' my-custom-domain.example.com;
Прикладной уровень:
<script src="https://my-custom-domain.example.com/script.js" data-site="ABCDEFGH" defer nonce="<?php echo $_SERVER['UNIQUE_ID']; ?>"></script>
Он всегда возвращает «загрузка не удалась» с ошибкой 403 в консоли.
Нонс был введен для тестирования, как я и думал, это может решить проблему. Это не так. (Я знаю, я знаю, что это не самый безопасный метод использования одноразового номера.)
Я также пробовал варианты пользовательского домена (с протоколом, без протокола, поддомены с подстановочными знаками и т. д.).
Отключение CSP «исправляет» проблему. Это означает, что 403 срабатывает только тогда, когда активен CSP.
Я относительно новичок в CSP и не знаю, как действовать дальше.
Любые предложения приветствуются.
1 ответ
Сразу после публичного обращения я нашел решение:
мне пришлось избавиться от директивы «Referrer-Policy» или, скорее, предоставить пустую, например:
Header always set Referrer-Policy ""
.
После этого обязательно наймите
rel="no-referrer"
вместо этого на все внешние ссылки.
Также мне пришлось добавить пользовательский домен в директиву img-src (поверх директивы script-src).
Для этой работы нет необходимости в одноразовом номере.