如何使用 PHP header-method 在 PHP 中使用 WordPress Nonces 实施内容安全策略?
How to implement Content Security Policy with WordPress Nonces in PHP using PHP header-method?
目前我正在尝试在 WordPress 登录页面上实施内容安全策略。我在 PHP 中使用以下 header-method 来实施内容安全策略:
header("Content-Security-Policy:default-src 'none'; script-src 'nonce-RandomSeq' 'nonce-hzthedtrh5' 'nonce-hjjftzrf56zf' ... ")
我正在尝试使用 WordPress Nonce 为内联 Javascript 代码创建随机随机数
<?php
$nonce = wp_create_nonce( 'my-nonce' ); ?>
<script type="text/javascript" nonce="<?php echo $nonce; ?>">
// some javascript code
</script>
当我用像“435234JHHJK2”这样的字符串指定随机数时,这个例子有效,但是当我尝试像这样在 header 中放置一个变量时:
header("Content-Security-Policy:default-src 'none'; script-src 'nonce-".$nonce."' 'nonce-hzthedtrh5' 'nonce-hjjftzrf56zf' ... ")
无法识别由 wp-nonce 创建的随机数,并且不会执行给定的脚本。
那我做错了什么?
找到解决方案:
PHP 不接受单引号中的变量,例如 'noce-".$nonce."'
解决方案是将CSP中的信息全部保存在一个外部字符串变量中:
$csp = "Content-Security-Policy: script-src 'nonce-".$nonce1."' 'nonce-".$nonce2."'...";
并将此变量包含到 PHP header 方法中:
header( "{$csp}");
目前我正在尝试在 WordPress 登录页面上实施内容安全策略。我在 PHP 中使用以下 header-method 来实施内容安全策略:
header("Content-Security-Policy:default-src 'none'; script-src 'nonce-RandomSeq' 'nonce-hzthedtrh5' 'nonce-hjjftzrf56zf' ... ")
我正在尝试使用 WordPress Nonce 为内联 Javascript 代码创建随机随机数
<?php
$nonce = wp_create_nonce( 'my-nonce' ); ?>
<script type="text/javascript" nonce="<?php echo $nonce; ?>">
// some javascript code
</script>
当我用像“435234JHHJK2”这样的字符串指定随机数时,这个例子有效,但是当我尝试像这样在 header 中放置一个变量时:
header("Content-Security-Policy:default-src 'none'; script-src 'nonce-".$nonce."' 'nonce-hzthedtrh5' 'nonce-hjjftzrf56zf' ... ")
无法识别由 wp-nonce 创建的随机数,并且不会执行给定的脚本。
那我做错了什么?
找到解决方案:
PHP 不接受单引号中的变量,例如 'noce-".$nonce."'
解决方案是将CSP中的信息全部保存在一个外部字符串变量中:
$csp = "Content-Security-Policy: script-src 'nonce-".$nonce1."' 'nonce-".$nonce2."'...";
并将此变量包含到 PHP header 方法中:
header( "{$csp}");