T. *_*one 32 security api django csrf
我有一个Django webapp,它既有前端的,可通过Web访问的组件,也有桌面客户端访问的API.但是,现在使用新的CSRF中间件组件,来自桌面客户端的POST请求的API请求将获得403.
我理解为什么会发生这种情况,但在不影响安全性的情况下解决这个问题的正确方法是什么?有没有我可以在HTTP标头中发出信号,它是一个API请求,Django不应该检查CSRF或者这是一个糟糕的策略?
编辑 -
我目前使用的方法是桌面客户端设置标头,X-Requested-With:XMLHttpRequest.这有点像hacky,但我不确定如何更好地处理它.
Bri*_*uft 10
如何分割桌面客户端的视图并使用csrf_exempt进行装饰?
如果您使用的是基于类的视图,那么您将需要csrf_exempt调度方法而不是像这样的post方法:
@method_decorator(csrf_exempt)
def dispatch(self, request, *args, **kwargs):
return super(MyView, self).dispatch(request, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
请参阅此错误凭单:https: //code.djangoproject.com/ticket/15794
| 归档时间: |
|
| 查看次数: |
19194 次 |
| 最近记录: |