本文介绍了CSP随机数实现是什么样子的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我最近一直在阅读CSP的文章,但我找不到关于NONCE如何工作的明确解释或可靠的例子。出于安全考虑,我尝试避免使用unsafe-inline
。
到目前为止,我的理解如下:
服务器将在每次连接时生成一个新的随机数客户端通过以某种方式获取此随机数并将此字符串插入到每个脚本标记中但是,我不知道客户端将如何获得这个在每个连接中都是动态且唯一的值。某种方式是什么样子?我是否应该实现额外的API来获取此值?
我使用了React.js,我的HTML头中有一个Google Tag Manager snippet,如果有人能提供与这些文件相关的示例,那就太好了。
推荐答案
Reaction应用程序是SPA(单页应用程序),因此使用XMLHttpRequest()
加载内容并插入内容,而无需重新加载页面。因此,不使用'nonce-value'
,因为您无法在每次刷新页面时生成新的‘现时值’。
'nonce'
可以在SSR(服务器端呈现)时使用,在这种情况下,服务器可以生成新的'nonce'
值并将其插入到已发送的HTML代码中(插入到<script nonce='value'>
、<script src ='some_url' nonce='value'>
、<style nonce='value'>
和<link href='some_url' nonce='value' rel='stylesheet'>
中)。
'hash-value'
允许内联脚本和样式。例如,
react-static-plugin-csp-meta-tags
程序包向您的html文件添加一个CSP元标记,并为所有内联脚本和样式标记添加散列。 这篇关于CSP随机数实现是什么样子的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!