2017-05-19 5 views
0

Je pourrais avoir besoin d'aide pour utiliser les expressions régulières perl.Modifier l'en-tête Apache en utilisant edit et perl regex

Je voudrais modifier l'en-tête content-security-policy (csp) de mon serveur web Apache. L'en-tête est en fait déjà défini par mon instance nextcloud, mais je ne suis pas content de ce qu'il y a dedans. J'ai donc décidé de modifier (ne pas remplacer) l'en-tête. Jusqu'à présent, j'ai essayé d'utiliser ce qui suit dans ma config apache:

Header edit Content-Security-Policy ^default-src\s'self'* "default-scr 'self' 'test'" 

Jusqu'à présent, si bon. Malheureusement, cela ne fonctionne que si je veux remplacer la première entrée de mon csp, mais ce que je veux faire est de changer la deuxième entrée

default-src 'self'; script-src 'self' 'unsafe-eval' 'nonce-abc...' 

devrait devenir

default-src 'self'; script-src 'self' 'unsafe-inline' 'nonce-abc...' 

Selon le documentation je suis utilise des expressions régulières de style perl. Je ne sais pas comment cela fonctionne et essayer la syntaxe vim-like n'a pas aidé. Alors s'il vous plaît aidez-moi à obtenir la commande droite. Merci beaucoup!

EDIT: Pour donner des informations supplémentaires, ma tête ressemble

content-security-policy: default-src 'self'; script-src 'self' 'unsafe-eval' 'nonce-SU5kR1FZUGU5UW9jY2toRFh6VGR5a0hGMTFCY3ltL2d4RkN1QlFKaXJzST06U0w4MUJkZVJ4eUZaV1gwUGNGMkZoZ3UwbUdacG5oblFnbnZZWmxzUHpKTT0='; style-src 'self' 'unsafe-inline'; frame-src *; img-src * data: blob:; font-src 'self' data:; media-src *; connect-src * 

où les changements de nonce à chaque connexion, si dur l'en-tête de codage ne fonctionne pas.

+0

Votre question n'a pas de contenu de programmation Perl. Re-étiqueté en conséquence. –

+0

Merci, je ne connaissais pas la balise pcre, c'est pourquoi j'avais d'abord mis perl. – Hannebambel

Répondre

1

En supposant que votre changement exemple est correect, et non l'échantillon ligne d'édition:

Header edit Content-Security-Policy "^(script-src.*?)'unsafe-eval'" "\1'unsafe-inline`" 
+0

Merci pour votre réponse. Malheureusement, cela ne fonctionne pas. Modification de votre ligne à 'En-tête modifier Contenu-Sécurité-Stratégie"^(default-src. *?) 'Unsafe-eval' "" \ 1'unsafe-inline' "' Est-ce que changer le résultat à '1'unsafe- inline' 'nonce-abc ...' ' Je ne sais pas où est l'erreur, mais j'ai ajusté mon exemple, peut-être que je n'étais pas clair sur ce que je voulais. – Hannebambel

+0

Je pense que la référence arrière au premier groupe '\ 1 'ne passe pas. Vous pouvez essayer deux barres obliques inverses. – NetMage

+0

Ajout d'une autre barre oblique inversée à '\ 1 'n'a pas aidé ... Mais j'ai trouvé la solution. Comme je n'ai qu'un seul 'unsafe-eval' (et que je veux donc remplacer toutes les occurences), j'ai utilisé' Header edit Content-Security-Policy "(unsafe-eval)" "unsafe-inline" '. Il donne le résultat souhaité, mais rend le site inutilisable. On dirait que nextcloud s'appuie sur 'unsafe-eval'. – Hannebambel