【问题标题】:Content Security Policy nonce on style attribute being ignored忽略样式属性的内容安全策略随机数
【发布时间】:2021-05-25 04:21:01
【问题描述】:

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

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

default-src 'none'; 
script-src 'self' 'nonce-OGrJRYbkub0OVcGnjoCFDw/OF+bamLQddwgBEfu9HjE='; 
style-src 'self' 'nonce-OGrJRYbkub0OVcGnjoCFDw/OF+bamLQddwgBEfu9HjE='; 
style-src-attr 'self' 'nonce-OGrJRYbkub0OVcGnjoCFDw/OF+bamLQddwgBEfu9HjE='; 
img-src 'self' https://www.gravatar.com;
font-src 'self' 'nonce-OGrJRYbkub0OVcGnjoCFDw/OF+bamLQddwgBEfu9HjE=';
connect-src 'self';
prefetch-src 'self';
form-action 'self';
manifest-src 'self';
upgrade-insecure-requests; block-all-mixed-content; report-to default;

如您所见,我设置了style-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 是一样的。唯一可行的方法是将unsafe-inline 添加到我试图避免的策略中。

【问题讨论】:

    标签: html security bootstrap-4 content-security-policy nonce


    【解决方案1】:

    Nonce 可以用在 nonceable 元素中。至少在 CSP 级别 2 中,这主要限于

    【讨论】:

    • 我认为这是可以接受的;您可以在标签上定义随机数,否则您将无法处理由 JScript 更改的样式,或者无法在几个特定位置使用内联样式而不使用 catch all 'unsafe-inline'
    • 仅限&lt;script&gt; and &lt;style&gt; are nonceable elements。 JScript 的句柄样式是allowed,除了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'
    猜你喜欢
    • 2020-05-01
    • 2019-01-19
    • 1970-01-01
    • 2020-09-09
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多