为内容安全策略和所有脚本生成现时值-如何使其匹配/持久化每个页面加载?

时间:2018-07-20 作者:Slbox

挂钩到script_loader_tag 钩子和生成随机字符串并没有问题,但如何在每次页面加载时生成一次并在这两种情况下使用它们呢wp_headscript_loader_tag?

我真的想升级我的CSP, 但我找到的所有插件都会破坏缩小效果。

2 个回复
SO网友:Peter HvD

WP的nonce不是真正的nonce,因为它们的有效期约为24小时。因此,如果在wp_create_nonce( $action ) 然后,WP将始终在24小时内生成相同的nonce。

SO网友:Otto

实际上,您不会使用wp_head 行动这发生在HTML输出的头部。要发送内容安全策略标头,或修改现有标头,您需要挂接到wp_headers 改为过滤。

至于生成nonce,您不想使用基于WordPress的nonce,因为它们在每页加载时都不是唯一的。您希望每个加载都生成一个随机数。

至于在wp_headers 以及script_loader_tag, 嗯,你只是,你知道,在两个地方使用相同的数字。在插件代码主体中生成数字,将其放入全局变量中,然后从连接到这些过滤器的两个函数中引用该变量。

结束

相关推荐

页面模板中的PHP代码与函数

我创建了许多WordPress网站,并学习了我认为正确的PHP实践,即函数包含在函数中。php文件,几乎所有的函数。php应该包装在一个函数中,页面模板中可以包含直接的php,等等。但我对“为什么”有点动摇。页面模板与函数文件的区别是什么,它们改变了每个模板中的工作方式和不工作方式?我假设这是装货订单,但如果您能提供更高级的指导/指示,我们将不胜感激。编辑-好的,我确实了解它的“最佳实践”方面。功能应该是可重用的,等等。我在寻找更多的技术原因,什么时候/为什么它不工作。