托多

django-referer-csrf的Python项目详细描述


django_推荐人

该项目有两个目标:

  1. 简化django的CSRF保护,这样开发者就不需要担心令牌了
  2. 使视图代码更容易动态调用CSRF保护

不需要代币

https://security.stackexchange.com/a/197269

在https站点上,django的csrf保护要求请求的referer头与请求的主机头相匹配。此检查使整个CSRF令牌冗余。令牌检查在referer检查之上没有提供额外的安全性。在

Django跳过了非https站点上的referer检查,这在一定程度上是有利的(这意味着配置web浏览器而不提交referer头的用户仍然可以提交表单)。在

我们的验证器实际上在寻找有效的origin头或referer头。现代浏览器遵循(newish)规范,即发送除head/get以外的每个请求的原始标头。这意味着如果用户禁用了referer头,他们仍然可以通过我们的CSRF检查。在

使用

  • pip install django_referer_csrf
  • MIDDLEWARE设置中,将django.middleware.csrf.CsrfViewMiddleware替换为django_referer_csrf.Middleware

有了这个中间件,您仍然可以使用Djangos的csrf_-exempt装饰器。在

如果你想在动态代码的基础上查看csf保护的话中间件.process\u视图()做了复制。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
无法在Netbeans 8.2 JDK8u231中创建java Maven项目(Web应用程序)   java如何以设定的时间间隔生成随机数?   java从socket和inputStream的慢速读取   spring SCORM:Java中基于Web的SCORM播放器   Java将函数传递给方法   java绑定通用服务及其实现和子类型   java如何在运行时从选择列表框中动态选择选项?爪哇硒   java Selenium WebDriver什么是“Selenium客户端和WebDriver语言绑定”   elasticsearch需要elasticsearch高级Java客户端更新ByQueryRequest API帮助   JAVA哈希表查找最大值   WSDL操作中的java soapAction属性为空   java访问封闭类或父类方法的一般方法   eclipse在java中运行带有SeleneTestCase的ANT。lang.NoClassDefFoundError   java Hazelcast不会在节点启动时填充ReplicatedMap   如何在Java中从excel中读取特定行?   html JAVA将本地时间(GMT+8)转换为UTC时间   java将自定义端点添加到Spring数据REST存储库中,并以大摇大摆的方式显示   java计算未来位置