2017-10-07 1 views
0

Derzeit versuche ich eine Inhaltssicherheitsrichtlinie auf einer WordPress-Landing-Seite zu implementieren. Ich bin mit dem folgenden Header-Methode in PHP ein Content Security Policy zu implementieren:Wie implementiert man Content Security Policy mit WordPress Nonces in PHP mit PHP Header-Methode?

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

Und ich bin versucht, WordPress Nonce zu verwenden, um zufällige Nonces für einen Inline-Javascript-Code

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

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

Dieses Beispiel Werke zu erstellen wenn ich specifiy die Nonce mit einem String wie „435234JHHJK2“, aber wenn ich versuche, eine Variable in der Kopfzeile wie folgt zu setzen:

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

die zufällige Nonce, erstellt by wp-nonce wird nicht erkannt und das angegebene Skript wird nicht ausgeführt.

Also, was mache ich falsch?

Antwort

0

die Lösung gefunden:

PHP akzeptiert keine Variablen in einfache Anführungszeichen liike in 'noce-".$nonce."' Lösung ist die gesamte in CSP Informationen in einem externen String-Variable zu speichern:

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

und diese schließen Variable in die PHP-Header-Methode:

header("{$csp}"); 
Verwandte Themen