如何检查Django安全漏洞以及如何修复

时间:2018-09-19 12:11:53

标签: django python-3.x django-rest-framework


在我全部使用django 2.1 + python 3.6

我必须承认django是一个框架,即使相对而言,它也可以简化开发人员的生活。

现在我们已经编写了一个django项目,进行了测试,部署了其Web应用程序;

问题:

  • 哪些安全点没有特别涵盖 django?

  • 我们可以拥有一个与以下网站相关的漏洞清单吗? django吗?

  • 什么是重要的安全测试,可确保产品稳定性 用django编写的应用程序?

感谢前进...

2 个答案:

答案 0 :(得分:3)

使用Observatory by Mozilla网站来扫描您网站的安全状态。该网站还包括测试您网站其他安全方面的第三方扫描程序。

这是给定站点的扫描结果的示例:

Security status grade

最好的分数是A +(分数甚至可以超过100%),但是即使站点已经通过了基本的部署检查表,站点也不会连续得分F(失败)也不会感到惊讶。

为提高网站安全性,请确保在settings.py中具有以下设置:

CSRF_COOKIE_SECURE = True
CSRF_COOKIE_SAMESITE = 'Strict'
SESSION_COOKIE_SECURE = True
SECURE_BROWSER_XSS_FILTER = True
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_SSL_REDIRECT = True
X_FRAME_OPTIONS = 'DENY'
SECURE_HSTS_SECONDS = 300  # set low, but when site is ready for deployment, set to at least 15768000 (6 months)
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True

然后使用SRI Hash Generator确保从第三方站点安全地加载所有脚本。

最后,实施过程中最具挑战性和最耗时的是内容安全策略(CSP),尤其是在站点很大,包含大量第三方代码以及分散了很多内联脚本和样式的情况下。在项目上。为了简化任务,您可以安装Mozilla's django-csp并使用浏览器的控制台来跟踪代码中的安全冲突。您还需要在settings.py中填写以下设置:

CSP_DEFAULT_SRC = ("'none'",)
CSP_STYLE_SRC = ("'self'",)
CSP_SCRIPT_SRC = ("'self'",)
CSP_FONT_SRC = ("'self'",)
CSP_IMG_SRC = ("'self'",)

This site helps to explain about CSP and what to do with inline scripts.

(可选)您可以安装django-referrer-policy来设置Referrer-Policy标头,以提高安全性(以及更高的等级!)。

我本人还是一个初学者,以上所有内容都是基于我的研究以及为提高网站安全性所做的努力。

答案 1 :(得分:2)

您可以执行的一项安全检查是Deployment checklist

运行

manage.py check --deploy

其他安全检查可以在official docs

中引用