J'installe un en-tête Content-Security-Policy dans mon fichier .htaccess, et il est devenu une ligne unique extrêmement longue, ce qui est gênant à gérer. Existe-t-il un moyen de diviser cette ligne en sous-chaînes plus gérables?
Par exemple, disons que je mets un en-tête comme
Header set Content-Security-Policy "deafult-src http://domainA.com; script-src http://domainB.com"
Je peux (sans problèmes de rupture évidents) accomplir mon cas spécifique avec quelque chose comme
Header append Content-Security-Policy "default-src http://domainA.com;"
Header append Content-Security-Policy "script-src http://domainB.com"
mais cela insérera des virgules dans la chaîne, donc j'étais toujours curieux de savoir s'il y avait une meilleure réponse qui pourrait être appliquée de manière générale, sans ajouter les caractères supplémentaires à la réponse.
L'idéal serait qu'il y ait un caractère de concaténation que je pourrais utiliser pour diviser la chaîne en parties plus petites, comme
Header set Content-Security-Policy "default-src http://domainA.com;"
\" script-src http://domainB.com"
ou
Header set Content-Security-Policy "default-src http://domainA.com;"^
" script-src http://domainB.com"
ou
Header set Content-Security-Policy "default-src http://domainA.com;"
+" script-src http://domainB.com"
Alternativement, si je pouvais définir une sorte de variable et simplement vider leur contenu pour faire quelque chose comme
a="default-src http://domainA.com;"
b=" script-src http://domainB.com"
Header set Content-Security-Policy $a$b
ce serait aussi beaucoup plus gérable.
Il y avait un sujet similaire qui a été soulevé pour nginx et la conclusion était juste de vivre avec les longues lignes (ils traitaient d'une longue expression régulière, donc la solution d'ajout n'aurait pas fonctionné); Est-ce que ce sera également le cas pour Apache?
la source
Réponses:
Les éléments suivants devraient fonctionner:
la source
Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration
.a2enmod headers
Oui - la barre oblique inverse fonctionne comme une continuation de ligne . Ceci est enterré dans la documentation Apache 2.4 sur [ https://httpd.apache.org/docs/2.4/configuring.html#page-header]
Règles importantes:
Si ces règles ne sont pas respectées, le serveur répondra avec une erreur 500.
la source