http-equiv值'内容 - 安全 - 策略'究竟具有什么作用?

时间:2016-08-20 02:07:24

标签: html5 cordova meta content-security-policy http-equiv

我正在使用Apache Cordova / Adob​​e Phonegap创建移动应用程序,并自动生成此代码段。它在谷歌浏览器的控制台中给我这个错误。

  

拒绝加载样式表   'https://fonts.googleapis.com/css?family=Open+Sans'因为它   违反了以下内容安全策略指令:“style-src   'self''unsafe-inline'“。

这个HTML your_curl_handle.getinfo(pycurl.RESPONSE_CODE)元素究竟做了什么?

meta

2 个答案:

答案 0 :(得分:2)

简短回答:如果您希望浏览器加载https://fonts.googleapis.com/css?family=Open+Sans样式表而不是阻止,请更改content元素的meta值,使其如下所示:< / p>

<meta http-equiv="Content-Security-Policy"
    content="default-src * 'unsafe-inline';
    style-src 'self' https://fonts.googleapis.com/ 'unsafe-inline'; media-src *" />

更长的解释

meta http-equiv="Content-Security-Policy"元素提供Content Security Policy,指定对源浏览器可以加载页面资源的内容以及哪些JavaScript和CSS内容浏览器允许页面内联指定的一些限制。

对于与您引用的消息相关的限制的特定部分,它是限制style-src 'self',其含义为“仅允许从同一来源加载外部样式表(相同方案+主机+ port)页面是从“。

提供的

因此,因为您的网页尝试加载https://fonts.googleapis.com/css?family=Open+Sans - 来自与网页本身不同的来源的样式表 - 而您的meta http-equiv="Content-Security-Policy"包含一个限制,说明“不要这样做”,那么浏览器遵守该限制并拒绝加载该样式表,并引用您所引用的消息。

答案 1 :(得分:1)

while not Done:标记提供有关网页的Metadata(有关数据的数据)。它不会显示在页面上,但会被浏览器解析。

详细了解Move()代码here

关于相关的Meta标记,Content-Security-Policy元标记允许您定义可以从中加载资源的位置,从而防止浏览器从任何其他位置加载数据,从而降低XSS攻击的风险。这使得攻击者更难以向您的网站注入恶意代码,如this所述。