Google Cloud Services间歇性内容安全政策问题

时间:2020-04-29 14:09:56

标签: google-cloud-platform google-cloud-storage

我有一个静态网站托管在通过Google平台提供的google存储桶中。

该网站已经运行了大约6个月,没有出现任何问题,但是在过去的一个月里,由于“内容安全”问题,我间歇性地无法加载样式表和脚本-这导致了主要内容的出现页面显示在浏览器中,没有样式,也没有(基于Javascript)功能。断断续续的意思是它可以正常工作几个小时,然后失败几个小时。

该服务没有“网络服务器”,例如我只是从存储桶中提供静态页面-我知道Google必须拥有自己的服务器来处理此问题。无论用户使用哪种浏览器,都会发生故障,并且清除浏览器缓存无济于事,因此此问题在Google服务器端。

在浏览器中检查开发人员控制台,我可以看到网页使用的所有样式表,脚本和字体的以下问题:

> Refused to load the stylesheet XXXXXXX because it violates the
> following Content Security Policy directive: "default-src 'none'".
> Note that 'style-src-elem' was not explicitly set, so 'default-src' is
> used as a fallback.

我认为我的“内容安全性”设置正确:

   <meta http-equiv="Content-Security-Policy" content="
         default-src 'self'; 
         img-src 'self'
            https://syndication.twitter.com;
         font-src 'self'    
            https://use.fontawesome.com
            https://fonts.gstatic.com
            https://fonts.googleapis.com;
         script-src 'self' 'unsafe-inline'
            https://stackpath.bootstrapcdn.com 
            https://connect.facebook.net
            https://platform.twitter.com
            https://code.jquery.com
            https://cdnjs.cloudflare.com; 
         style-src 'self' 'unsafe-inline'
            https://stackpath.bootstrapcdn.com 
            https://use.fontawesome.com 
            https://fonts.googleapis.com;
         frame-src 'self'   
            https://www.facebook.com
            https://connect.facebook.net
            https://platform.twitter.com
            https://www.youtube.com;
   ">  

这些是失败的链接,每个“外部”链接都包括与导入签名,以确保加载“真实”的东西。

<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">

<!-- Font Awesome -->
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">

<!-- Custom fonts for this template -->
<link href='https://fonts.googleapis.com/css?family=Titillium+Web' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>

任何人都可以看到我在做错什么,或者提供任何建议以使它始终如一地工作吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,目前无法在网站存储桶中以这种方式设置CSP标头,因为Cloud Storage用于网站存储桶的网络服务器可能正在为您的网站添加默认值。

有一个功能请求for this,但自上次更新以来似乎已经有一段时间了。

如果您需要在没有这些问题的情况下投放网页,可以尝试使用App引擎标准(甚至可以申请Always Free Tier

相关问题