Я устанавливаю заголовок 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?
Следующее должно работать:
Header set Content-Security-Policy "default-src http://domainA.com; \
script-src http://domainB.com"
Да - обратная косая черта работает как продолжение строки. Это похоронено в документации Apache 2.4 на [https://httpd.apache.org/docs/2.4/configuring.html#page-header]
Если эти правила не соблюдаются, сервер ответит ошибкой 500.