Как установить CSP (Content-Security-Policy) в .htaccess

Если я установлю CSP, мой веб-сайт не загрузится. Я пытаюсь избежать unsafe-inline/-eval. Я использую следующую файловую структуру

  • .htaccess
  • index.php
  • разметка.html
  • скрипты/main.js
  • скрипты/jquery.js
  • стили/style.css
  • и некоторые другие изображения и текстовые файлы для контента

Я получаю просто белую страницу, однако, если я открываю исходный код в браузере, он загружается, но некоторые его части пропускаются.

      <IfModule mod_headers.c>
    Header set X-XSS-Protection "1; mode=block"
    Header set X-Frame-Options "SAMEORIGIN"
    Header set X-Content-Type-Options "nosniff"
    Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
    # Header set Content-Security-Policy "default-src 'self' data:; style-src 'self'; script-src 'self' 'nonce-%{UNIQUE_ID}e' /scripts; frame-src https:;"
    Header set Referrer-Policy "same-origin"
    Header set Feature-Policy "geolocation 'self'; vibrate 'none'"
</IfModule>

Я пытался использовать разные коды в .htaccess, например:

      Header set Content-Security-Policy "default-src 'self' data:; style-src 'self'; script-src 'self' '/scripts/main.js' '/scripts/jquery.js'; frame-src https:;"

и

      Header set Content-Security-Policy "default-src 'self' data:; style-src 'self'; script-src 'self' 'nonce-%{UNIQUE_ID}e' /scripts; frame-src https:;"

для второго кода, который я установил в HTML:

      <script src="scripts/main.js" nonce="<random-nonce>"></script>    

и в PHP

       $html= file_get_contents("markup.html");
 $html = str_replace("<random-nonce>", $_SERVER['UNIQUE_ID'], $html);
 print $html;

Я пытаюсь уже 5 часов безуспешно: / Это работает, только если я закомментирую CSP в .htaccess с помощью #, конечно, тогда без CSP!

0 ответов

Другие вопросы по тегам