相关疑难解决方法(0)

内容安全策略如何运作?

我在开发者控制台中遇到了一堆错误:

拒绝评估字符串

拒绝执行内联脚本,因为它违反了以下内容安全策略指令

拒绝加载脚本

拒绝加载样式表

这是怎么回事?内容安全策略如何运作?我如何使用Content-Security-PolicyHTTP标头?

具体来说,如何......

  1. ......允许多个来源?
  2. ......使用不同的指令?
  3. ...使用多个指令?
  4. ......处理端口?
  5. ...处理不同的协议?
  6. ......允许file://协议?
  7. ...使用内联样式,脚本和标签<style><script>
  8. ......允许eval()

最后:

  1. 究竟是什么'self'意思?

html javascript security http-headers content-security-policy

218
推荐指数
2
解决办法
16万
查看次数

$(...).每个都不是函数

我正在尝试使用Web控制台将文本放在页面上的所有h2标记内.

我发现所有人都说要使用每一个,我试过了

var anArray = [];

$('h2').each( function(i,e) {
    anArray.push($(e).innerHTML);
});
Run Code Online (Sandbox Code Playgroud)

但它返回TypeError: $(...).each.each不是一个函数.

我也试过用

$.each('h2', function(i,e) {
        anArray.push($(e).innerHTML);
    });
Run Code Online (Sandbox Code Playgroud)

但是,我得到的TypeError: $.each只是一个功能?

each jquery typeerror

21
推荐指数
3
解决办法
3万
查看次数

拒绝加载图像“blob:...”,因为它违反了以下内容安全策略

我收到此错误:

Refused to load the image 'blob:file:///cf368042-bf23-42b6-b07c-54189d3b0e01' because it violates the following Content Security Policy directive: "default-src * 'self' 'unsafe-inline' 'unsafe-eval' data: gap: content:". Note that 'img-src' was not explicitly set, so 'default-src' is used as a fallback.
Run Code Online (Sandbox Code Playgroud)

在尝试加载 mapboxGL 地图时。这是我的 CSP 标签:

<meta http-equiv="Content-Security-Policy" 
    content="
      worker-src blob:; 
      child-src blob: gap:;
      default-src * 'self' 'unsafe-inline' 'unsafe-eval' data: gap: content:">
Run Code Online (Sandbox Code Playgroud)

html mapbox content-security-policy

15
推荐指数
1
解决办法
2万
查看次数

如何解决:“拒绝运行 JavaScript URL,因为它违反了以下内容安全策略...”

有人知道为什么我总是收到此消息吗?拒绝运行 JavaScript URL,因为它违反了以下内容安全策略指令:“default-src 'self'”。启用内联执行需要“unsafe-inline”关键字、哈希值(“sha256-...”)或随机数(“nonce-...”)。另请注意,“script-src”未明确设置,因此“default-src”用作后备。

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width">
        <title>Title</title>
        <script type="text/javascript">
                function checkoutForm() {
                    var inputValue = document.querySelectorAll('.form-control')[0].value;
                    alert('Your input value: ' + inputValue);
                    window.open('/search/' + inputValue);
                }
        </script>
    </head>
    <body>
        <form class="navbar-search navbar-search-dark form-inline mr-3 d-none d-md-flex ml-lg-auto" method="get"
        action="javascript:checkoutForm()">
            <div class="form-group mb-0">
                <div class="input-group input-group-alternative">
                    <div class="input-group-prepend">
                        <span class="input-group-text"><i class="fas fa-search"></i></span>
                    </div>
                    <input class="form-control" placeholder="Search" type="search" value>
                </div>
            </div>
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

html javascript

6
推荐指数
2
解决办法
2万
查看次数

拒绝框架 'https://api.xxx.jp/' 因为它违反了以下内容安全策略指令:“frame-src 'self'

我们开始吧:我是谷歌 chrome 扩展开发的新手,所以请耐心等待。

我有一个扩展程序,它给了我以下错误:

拒绝框架 ' https://api.xxx.jp/ ' 因为它违反了以下内容安全策略指令:“frame-src 'self' https://staticxx.facebook.com https://twitter.com https: //*.twimg.com https://5415703.fls.doubleclick.net https://player.vimeo.com https://pay.twitter.com https://www.facebook.com https://ton .twitter.com https://syndication.twitter.com https://vine.co推特:https : //www.youtube.com https://platform.twitter.com https://upload.twitter.com https ://s-static.ak.facebook.com https://4337974.fls.doubleclick.net https://8122179.fls.doubleclick.net https://donate.twitter.com”。

我的manifest.json文件具有以下关于内容安全策略的设置:

{
   "content_security_policy": "script-src 'self' https://ssl.google-analytics.com; object-src 'self'",
   "manifest_version": 2,
}
Run Code Online (Sandbox Code Playgroud)

在我的content.js文件中,我通过iframe标签内部调用 api :

<iframe src="'+url+'" name="xxxExtensionsFrame" width="380" height="' + (heightBase - 5) + '" border="0" frameborder="0" scrolling="no"></iframe>
Run Code Online (Sandbox Code Playgroud)

api 的url始终为 https 形式。

google-chrome google-chrome-extension content-security-policy manifest.json

5
推荐指数
1
解决办法
1万
查看次数