Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 忽略样式属性上的内容安全策略nonce_Html_Security_Bootstrap 4_Content Security Policy_Nonce - Fatal编程技术网

Html 忽略样式属性上的内容安全策略nonce

Html 忽略样式属性上的内容安全策略nonce,html,security,bootstrap-4,content-security-policy,nonce,Html,Security,Bootstrap 4,Content Security Policy,Nonce,我正在设置内容安全策略,一个供应商库(bootstap)正在设置内联样式以显示一个对话框,Edge/Chromium表示该更改已被拒绝 我的CSP标题(示例拆分为单独的行以便于阅读)是: 如您所见,我设置了样式src attr,我的html如下所示: <div id="large-right-modal" class="modal fade show" tabindex="1" role="dialog" ar

我正在设置内容安全策略,一个供应商库(bootstap)正在设置内联样式以显示一个对话框,Edge/Chromium表示该更改已被拒绝

我的CSP标题(示例拆分为单独的行以便于阅读)是:

如您所见,我设置了
样式src attr
,我的html如下所示:

<div id="large-right-modal" class="modal fade show" tabindex="1" role="dialog" aria-labelledby="large-right-modal-label" nonce="OGrJRYbkub0OVcGnjoCFDw/OF+bamLQddwgBEfu9HjE=" aria-modal="true">
</div>

当我显示此引导模式时,库会添加内联样式
style=“display:block;”
,浏览器会给出错误信息:

拒绝应用内联样式,因为它违反了以下内容安全策略指令:“style src attr'self''nonce-OGrJRYbkub0OVcGnjoCFDw/OF+bamLQddwgBEfu9HjE='”。启用内联执行需要'unsafe inline'关键字、哈希('sha256-TH1YO7Owtg52rPfkQs+Us6yN6exn7w99CdIBBm9BmMQ=')或nonce('nonce-…')


这没有多大意义,nonce与正在修改的元素上的nonce相同。唯一有效的方法是将
不安全内联
添加到我试图避免的策略中。

Nonce可用于非可伸缩元素。至少在CSP 2级中,这主要限于和。问题是,如果属性中有样式,请尝试移动到样式块或css文件。

我认为这是可以接受的;您可以在标记上定义nonce,否则您将无法处理由JScript更改的样式,或者只能在几个特定位置使用内联样式,而无需仅使用catch-all“unsafe-inline”。JScript的句柄样式不包括
setAttribute(“style”,…)
func。顺便说一句,bootstarp使用CSP安全的方式添加
style='display:block;'并通过
sha256-TH1YO7Owtg52rPfkQs+Us6yN6exn7w99CdIBBm9BmMQ=
判断-它不是
style='display:block;'已被阻止。
font-src
指令涵盖了
@font-face
构造-它不是html元素,因此不能应用
'nonce-value'
style src attr
指令不支持
'self'
'nonce-value'
<div id="large-right-modal" class="modal fade show" tabindex="1" role="dialog" aria-labelledby="large-right-modal-label" nonce="OGrJRYbkub0OVcGnjoCFDw/OF+bamLQddwgBEfu9HjE=" aria-modal="true">
</div>