📜  在 Django 项目中添加 CSP 标头

📅  最后修改于: 2022-05-13 01:54:54.753000             🧑  作者: Mango

在 Django 项目中添加 CSP 标头

在开发网站和 Web 应用程序时,网站安全一直是一个重要因素。许多框架都有自己的安全策略,开发人员在开发应用程序时也尝试实现最多的安全策略。即使经过这么多的努力,黑客仍然会找到新的方法来渗透到我们的应用程序中,利用我们的代码找到漏洞。在本文中,我们将实现一个安全标头,通常称为 Django 应用程序的 CSP 标头。

术语

  • CSP :Content-Security-Policy 是一个 HTTP 响应标头,现代浏览器使用它来增强网页的安全性,它允许您限制诸如 JavaScript、CSS 或几乎任何浏览器加载的资源的方式。
  • HTTP 标头:HTTP 标头让客户端和服务器通过 HTTP 请求或响应传递附加信息,例如 MIME 类型、请求状态代码、cookie 和代理信息等
  • XSS : 也缩写为 Cross Side Scripting,XSS 攻击使攻击者能够将客户端脚本注入到其他用户查看的网页中,如果被利用可以改变网页的外观和行为。
  • Django: django 是一个基于Python的 Web 应用程序框架,用于构建各种 Web 应用程序

什么是内容安全策略?

Content-Security-Policy是现代浏览器用来增强网页安全性的 HTTP 响应标头,它允许您限制诸如 JavaScript、CSS 或浏览器加载的几乎任何旨在防止 XSS 攻击的资源的方式。攻击者将客户端脚本以简单的语言注入其他用户查看的网页中,如果被利用,可以改变网页的外观和行为。它也被称为 X-Content-Security-Policy 或 X-Webkit-CSP 标头的继承者。 CSP 也可以使用元标记来实现。

一些 CSP 标头术语是

  • default-src :加载所有内容的默认源
  • style-src : 加载样式的源
  • script-src : 加载 javascript 或一般脚本的源代码
  • img-src : 加载图片的源
  • object-src : 加载媒体的源
  • report-to : uri 发送违反 CSP 的报告
  • 'self':从同一主机加载
  • 'unsafe-inline' : 允许内联样式和脚本
  • 'unsafe-eval' :允许使用 eval() 和类似的方法从字符串创建代码
  • 'nonce' :一个随机字符串,每个请求应该是唯一的

内容安全策略如何运作?

CSP 的工作原理是阻止样式、脚本和其他内容的执行,除非它们在策略中被允许。 CSP 不允许执行内联脚本和样式,这意味着我们不能将