配置Django生产设置和内容安全策略

时间:2018-11-02 17:54:08

标签: django security heroku

我正在尝试将我的网站配置为通过以下测试:

我一直在看这个blog post。我正在使用D jango app called django-csp来实现这一点。我在生产环境中的Django设置如下:

# Content Security Policy
CSP_DEFAULT_SRC = ("'none'", )
CSP_STYLE_SRC = ("'self'", "fonts.googleapis.com", "'sha256-/3kWSXHts8LrwfemLzY9W0tOv5I4eLIhrf0pT8cU0WI='")
CSP_SCRIPT_SRC = ("'self'", )
CSP_IMG_SRC = ("'self'",)
CSP_FONT_SRC = ("'self'", "fonts.gstatic.com")
CSP_CONNECT_SRC = ("'self'", )
CSP_OBJECT_SRC = ("'none'", )
CSP_BASE_URI = ("'none'", )
CSP_FRAME_ANCESTORS = ("'self'", 'https://example.com/', 'https://example.com/')
CSP_FORM_ACTION = ("'self'", )
CSP_INCLUDE_NONCE_IN = ('script-src',)

CSRF_COOKIE_SECURE = True
SESSION_COOKIE_SECURE = True
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_BROWSER_XSS_FILTER = True
SECURE_SSL_REDIRECT = True
X_FRAME_OPTIONS = 'DENY'
SECURE_HSTS_SECONDS = 60
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True

但是,即使我具有上述设置,当我运行上述测试时,我仍然失败。而且,在Chrome开发工具中,我没有收到任何错误,这很棒。

enter image description here

有人对此有意见吗? 谢谢

更新

我正在通过Heroku部署应用程序。当我使用Mozilla天文台测试appname.herokuapp.com网址时,我通过了所有测试。

似乎当我将域appname.herokuapp.com转发到mywebsite.com时,是否跳过了某些设置?我的mywebsite.com测试失败了

我已将CNAME www添加为自定义Heroku DNS的值。

1 个答案:

答案 0 :(得分:0)

确实,我的问题在于配置DNS设置的方式。我将Django产品设置保持不变(见上文)。

我在Heroku设置中添加了自定义域,并在Cloudflare的CNAME设置中使用了自动生成的服务器名称。

然后我在Mozilla天文台进行了一次检查,并通过了测试。

相关问题