Javascript 如何使用PHP标头方法在PHP中使用WordPress Nonces实现内容安全策略?
目前,我正试图在WordPress登录页上实施内容安全策略。我在PHP中使用以下标头方法来实现内容安全策略:Javascript 如何使用PHP标头方法在PHP中使用WordPress Nonces实现内容安全策略?,javascript,php,wordpress,content-security-policy,nonce,Javascript,Php,Wordpress,Content Security Policy,Nonce,目前,我正试图在WordPress登录页上实施内容安全策略。我在PHP中使用以下标头方法来实现内容安全策略: header("Content-Security-Policy:default-src 'none'; script-src 'nonce-RandomSeq' 'nonce-hzthedtrh5' 'nonce-hjjftzrf56zf' ... ") 我正在尝试使用为内联Javascript代码创建随机nonce <?php $nonce = wp_create_nonce
header("Content-Security-Policy:default-src 'none'; script-src 'nonce-RandomSeq' 'nonce-hzthedtrh5' 'nonce-hjjftzrf56zf' ... ")
我正在尝试使用为内联Javascript代码创建随机nonce
<?php
$nonce = wp_create_nonce( 'my-nonce' ); ?>
<script type="text/javascript" nonce="<?php echo $nonce; ?>">
// some javascript code
</script>
不识别由wp nonce创建的随机nonce,并且不会执行给定的脚本
那么我做错了什么呢?找到了解决方案:
PHP不接受单引号中的变量,如'noce-“$nonce.”
解决方案是将CSP中的全部信息保存在外部字符串变量中:
$csp = "Content-Security-Policy: script-src 'nonce-".$nonce1."' 'nonce-".$nonce2."'...";
要将此变量包含到PHP标头方法中,请执行以下操作:
header( "{$csp}");
header( "{$csp}");