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

Nat*_*ram 3 django python-3.x django-rest-framework


在我全部使用django 2.1 + python 3.6之前

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

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

问题:

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

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

  • 确保django编写的应用程序的稳定性的重要安全测试有哪些?

谢谢提前...

Ros*_*iya 11

您可以执行的安全检查之一是 部署清单

manage.py check --deploy
Run Code Online (Sandbox Code Playgroud)

其他安全检查可参考官方文档


cbs*_*teh 5

使用Mozilla网站的天文台扫描您网站的安全状态。该网站还包括测试您网站其他安全方面的第三方扫描仪。

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

安全状态等级

最好的分数是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
Run Code Online (Sandbox Code Playgroud)

然后,使用SRI哈希生成器来确保从第三方站点安全地加载所有脚本。

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

CSP_DEFAULT_SRC = ("'none'",)
CSP_STYLE_SRC = ("'self'",)
CSP_SCRIPT_SRC = ("'self'",)
CSP_FONT_SRC = ("'self'",)
CSP_IMG_SRC = ("'self'",)
Run Code Online (Sandbox Code Playgroud)

该站点有助于说明有关CSP以及如何处理内联脚本的信息。

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

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