Django,内容安全政策指令

时间:2015-07-26 09:59:02

标签: css django google-app-engine

我正在尝试使用以下内容将font-awesome导入我的应用程序:

<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css" rel="stylesheet" type="text/css">

这会在JS控制台中返回以下错误:

  

拒绝加载样式表   &#39; http://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css&#39;   因为它违反了以下内容安全策略指令:   &#34; style-src&#39; self&#39; &#39;不安全直插&#39;&#34;

Django应用程序是一个djangae(Django + GoogleAppEngine)示例应用程序,我将其作为我想要制作的起点。 https://github.com/davide-ceretti/googleappengine-djangae-blog

导入发生在base.html中。我怎样才能解决这个问题?我认为这是一个设置,但我无法追踪它。

P.S。我为另一个导入得到了同样的错误:

<link href='http://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic' rel='stylesheet' type='text/css'>

3 个答案:

答案 0 :(得分:7)

将此添加到settings.py:

# Keep our policy as strict as possible
CSP_DEFAULT_SRC = ("'none'",)
CSP_STYLE_SRC = ("'self'", 'fonts.googleapis.com')
CSP_SCRIPT_SRC = ("'self'",)
CSP_FONT_SRC = ("'self'", 'fonts.gstatic.com')
CSP_IMG_SRC = ("'self'",)

并查看http://www.w3.org/TR/CSP/

答案 1 :(得分:3)

使用内容安全策略保护Django应用非常简单,在您的情况下,标头应如下所示:

lV_titoli.setAdapter(adapter);
  1. pip安装django-csp
  2. 调整项目的设置模块,以将“ django-csp”中间件添加到中间件类中
  3. 添加上述CSP标头

更多资源

http://django-csp.readthedocs.io/en/latest/

https://www.templarbit.com/blog/2018/06/14/content-security-policy-with-django

答案 2 :(得分:2)

这是来自HTML5中的浏览器。这是一篇关于如何在标题中修复它的好文章:

http://www.html5rocks.com/en/tutorials/security/content-security-policy/

还有一个用于处理此标题的Django应用程序:

http://django-csp.readthedocs.org/en/latest/configuration.html

祝你好运!