首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails中的样式-src错误地添加到script-src中。

Rails中的样式-src错误地添加到script-src中。
EN

Stack Overflow用户
提问于 2020-07-28 01:49:01
回答 1查看 1.1K关注 0票数 2

我在一个Rails应用程序中有一个单独的内联样式标签,我正在尝试用一个nonce来白名单它。

错误:Content Security Policy: The page’s settings observed the loading of a resource at inline (“style-src”). A CSP report is being sent.

当使用卡普查创业板时,该样式由助手注入:

代码语言:javascript
复制
<%= invisible_captcha nonce: true %>

通过比较视图和标题,可以发现nonce被添加到这两个视图中,但是它被添加到script-src而不是style-src中。

视图:<style media="screen" nonce="5Cq/QyoJ5Co+LdarO1uvrg==">

标题:Content-Security-Policy-Report-Only script-src 'self' https: 'nonce-5Cq/QyoJ5Co+LdarO1uvrg=='; style-src 'self' https:;

这是我的content_security_policy.rb

代码语言:javascript
复制
Rails.application.config.content_security_policy do |config|
 config.style_src  :self, :https    
end

Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) }
Rails.application.config.content_security_policy_nonce_directives = %w(style-src script-src)

为什么会出现错误的指令,以及如何将其转到style-src

EN

回答 1

Stack Overflow用户

发布于 2020-07-28 02:06:24

是的,这将干扰您的CSP (或者更确切地说,您的CSP会干扰您的<script>标记)。

在使用散列时,需要计算每个<script>标记的散列,并将散列作为script-src输出到CSP头中。如果您在您的ERB文件中放置了一个文字的<script>标记,Rails无法了解该标记,并且它不会计算哈希或将其添加到您的头中。

Rails (据我所知)不支持散列作为源。您可以使用安全报头 gem,它提供了一个要使用的hashed_javascript_tag方法而不是<script>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63125907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档