#.htaccess #content-security-policy
Вопрос:
У меня есть API, который использует приведенный ниже файл .htaccess
Header set Strict-Transport-Security "max-age=31536000"
Header set X-XSS-Protection "1; mode=block"
Header set Content-Security-Policy "default-src 'none'" <-----This Line-------
Header set X-Frame-Options "SAMEORIGIN"
Header set X-Content-Type-Options "nosniff"
<Files "composer.json">
Order Allow,Deny
Deny from all
</Files>
<Files "composer.lock">
Order Allow,Deny
Deny from all
</Files>
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}/$1 !-f
RewriteRule ^(. ) %{DOCUMENT_ROOT}/index.php
И я хочу загрузить html-файл, в который нужно вставить какой-нибудь скрипт и стиль из локальных файлов. И строка, которую я указал выше, предотвращает это.
Как можно исключить этот html-файл?
Вы можете видеть, какая у меня ошибка
Комментарии:
1. Я совершенно не понимаю, что вы пытаетесь сделать. Пожалуйста, потратьте некоторое время на пересмотр вашего вопроса, чтобы другие могли понять, что на самом деле вы пытаетесь сделать. Эта конфигурация не имеет ничего общего с «инъекцией» (насколько я могу сказать). И это последнее правило переписывания на самом деле не имеет смысла в моих глазах (
RewriteRule ^(. ) %{DOCUMENT_ROOT}/index.php
).2. @arkascha На самом деле, это не имеет никакого отношения к нему
RewriteRule
и другим строкам. У меня есть html-файл, я хочу отобразить его с помощью php. Однако строка .htaccess, о которой я упоминал выше, не позволяет мне вводить эти файлы с внешнего URL-адреса. Как я могу исключить этот адрес?3. То есть вы на самом деле просто имеете в виду «загрузить», когда пишете «ввести»? ОК. Хотя я не понимаю, зачем вам нужно загружать стили в API… В любом случае, я бы снова предложил вам пересмотреть свой вопрос, поэтому отредактируйте его вместо добавления дополнительной информации в комментариях.
4. Замените
Header set Content-Security-Policy "default-src 'none'"
наHeader set Content-Security-Policy "default-src 'self'; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' unpkg.com"; img-src 'self'"
. Это исправит ошибки, которые вы показали, но'unsafe-inline'
вscript-src
этом очень небезопасно. Или просто удалитеHeader set Content-Security-Policy "default-src 'none'"
строку, если вы не готовы правильно настроить CSP.5. @arkascha Я написал документацию swagger для API. Я просто пытался отобразить HTML-файл, в котором есть некоторые CSS и js. Но CSP мешал загружать эти файлы. И спасибо за подсказку о
RewriteRule
том, что вы правы, я исправлю эту линию.