2017-10-07 4 views
0

Actuellement, j'essaie de mettre en place une politique de sécurité du contenu sur une page WordPress Landing. J'utilise la méthode d'en-tête suivante en PHP pour mettre en œuvre un contenu politique de sécurité:Comment implémenter la stratégie de sécurité du contenu avec WordPress Nonces en PHP en utilisant la méthode d'en-tête PHP?

header("Content-Security-Policy:default-src 'none'; script-src 'nonce-RandomSeq' 'nonce-hzthedtrh5' 'nonce-hjjftzrf56zf' ... ") 

Et je tente d'utiliser WordPress Nonce pour créer des nonces aléatoires pour une ligne de code Javascript

<?php 
$nonce = wp_create_nonce('my-nonce'); ?> 

<script type="text/javascript" nonce="<?php echo $nonce; ?>"> 
    // some javascript code 
</script> 

Cet exemple d'entreprise quand je spécifions le nonce avec une chaîne comme « 435234JHHJK2 », mais lorsque je tente de mettre une variable dans l'en-tête comme ceci:

header("Content-Security-Policy:default-src 'none'; script-src 'nonce-".$nonce."' 'nonce-hzthedtrh5' 'nonce-hjjftzrf56zf' ... ") 

le nonce aléatoire, créé par wp-nonce n'est pas reconnu et le script donné ne sera pas exécuté.

Alors qu'est-ce que je fais mal?

Répondre

0

trouvé la solution:

PHP n'accepte pas les variables entre guillemets simples liike dans 'noce-".$nonce."' solution est de sauver l'ensemble des informations CSP dans une variable de chaîne externe:

$csp = "Content-Security-Policy: script-src 'nonce-".$nonce1."' 'nonce-".$nonce2."'..."; 

et d'inclure cette variable dans la méthode d'en-tête PHP:

header("{$csp}");