仅对HTML表单启用CSRF保护
django-csrf-protect-form的Python项目详细描述
Django CSRF保护表
django框架中的csrf中间件和模板标记提供了易用性 防止跨站点请求伪造。这个保护者有一些 XHR POST请求的不便之处。
当内容类型为 请求如下:
- 应用程序/x-www-form-urlencoded
- 多部分/窗体数据
- 文本/纯文本
从csrf保护中排除xhr请求通常是安全的,因为xhr 请求只能来自同一来源。检查你的cors配置 在使用本模块之前。使用django-cors-headers模块保护站点 穿着紧身衣。
安装
安装时使用pip或pipenv:
pipinstalldjango-csrf-protect-form
配置
您可以设置启用CSRF保护的内容类型列表。这个 默认值为:
CSRF_PROTECT_FORM_CONTENT_TYPE=['application/x-www-form-urlencoded','multipart/form-data','text/plain',]
使用量
views.py
fromdjango_csrf_protect_formimportcsrf_protect_form@csrf_protect_formdefhello(request):returnHttpResponse("<html><head></head><body>Hello, world!</body></html>")
或:
urls.py
fromdjango_csrf_protect_formimportcsrf_protect_formfrom.viewsimporthellourlpatterns=[url('hello/',csrf_protect_form(hello)),]
许可证
版权所有©2019,Piotr Roszatycki
该软件在GNU Lesser General Public License(LGPL)下分发 3或更大)。