9

我在使用Rails 5.2.3时,遇到了以下错误:

未定义方法内容安全策略?用于课堂。

查看错误后,我发现它是由于csp元标记在layout application.html.erb中。

那么,它到底意味着什么?它有什么帮助?

1答案1

重置为默认值
12

我的解释是:CSP用于在你的应用程序中只允许可信的脚本。因此,它用于保护应用程序免受未知脚本的攻击,这些脚本可能会被注入以损坏(或黑客攻击)应用程序。但它是如何做到的呢?

这是的代码csp元标记:

定义csp_meta_tag如果内容安全策略?标记(“meta”,名称:“csp-nonce”,内容:content_security_policy_nonce)结束结束

根据文件:

返回元标记“csp-nonce”,其中包含的per-session nonce值允许内联标记。

但什么是nonce,它是如何使用的?

nonce是一个随机字符串。它是由一个安全函数加密生成的。脚本在用户浏览器中运行的唯一方式是,如果脚本附加了nonce。例子:

<script nonce=“AsnfAsf%28217%(*”><!-- 此处有一些代码--><脚本>

因此,想要在应用程序中注入脚本的攻击者将无法执行此操作,因为他/她没有这个随机字符串。此外,每次加载浏览器页面时都会重新生成nonce,这使得攻击更加困难。

2
  • 2
    但攻击者是否能够通过运行脚本来获取现时值,然后注入脚本标记为现时价值? 评论 2020年8月8日2:44
  • 2
    @RamyTamer攻击者不需要知道现时值来运行检测值并将其注入脚本
    – 用户3991678
    评论 2021年10月18日11:39

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.