Я устанавливаю заголовок Content-Security-Policy в моем файле .htaccess, и он вырос до очень длинной отдельной строки, которой сложно управлять. Есть ли способ разбить эту строку на более управляемые подстроки?
В качестве тривиального примера, скажем, я устанавливаю заголовок, как
Header set Content-Security-Policy "deafult-src http://domainA.com; script-src http://domainB.com"
Я могу (без очевидных проблем) решить мой конкретный случай с чем-то вроде
Header append Content-Security-Policy "default-src http://domainA.com;"
Header append Content-Security-Policy "script-src http://domainB.com"
но это вставит запятые в строку, поэтому мне все еще было любопытно, был ли лучший ответ, который можно было бы применить вообще, без добавления дополнительных символов в ответ.
Что было бы идеально, если бы был какой-либо символ конкатенации, который я мог бы использовать, чтобы разбить строку на более мелкие части, например
Header set Content-Security-Policy "default-src http://domainA.com;"
\" script-src http://domainB.com"
или
Header set Content-Security-Policy "default-src http://domainA.com;"^
" script-src http://domainB.com"
или
Header set Content-Security-Policy "default-src http://domainA.com;"
+" script-src http://domainB.com"
Кроме того, если бы я мог установить какую-то переменную и просто сбросить их содержимое, чтобы сделать что-то вроде
a="default-src http://domainA.com;"
b=" script-src http://domainB.com"
Header set Content-Security-Policy $a$b
это также было бы намного более управляемым.
Была похожая тема, которая возникла для nginx, и вывод заключался в том, чтобы просто жить с длинными строками (они имели дело с длинным регулярным выражением, поэтому решение добавления не сработало бы); Так будет и с Apache?
источник
Ответы:
Следующее должно работать:
источник
Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration
.a2enmod headers
Да - обратный слеш работает как продолжение строки . Это скрыто в документации Apache 2.4 по адресу [ https://httpd.apache.org/docs/2.4/configuring.html#page-header].
Важные правила:
Если эти правила не соблюдаются, сервер ответит с ошибкой 500.
источник