django 中间件 CsrfViewMiddleware 200318

博客围绕Django中间件CsrfViewMiddleware展开,虽无具体内容,但可知聚焦于该中间件相关信息技术知识。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

### 介绍 Django中间件是修改Django request或者response对象的钩子,可理解为是介于HttpRequest与HttpResponse处理之间的一道处理过程。每个中间件组件负责完成某个特定的功能,浏览器从请求到响应的过程中,Django需要通过很多中间件处理 [^1]。 ### 使用方法 #### 自定义中间件 在app创建middleware.py文件自定义中间件,在settings中注册。示例代码如下: ```python from django.utils.deprecation import MiddlewareMixin class CustomizeMiddleware1(MiddlewareMixin): def process_request(self, request): print("中间件1请求") def process_response(self, request, response): print("中间件1返回") return response def process_view(self, request, callback, callback_args, callback_kwargs): print("中间件1view") class CustomizeMiddleware2(MiddlewareMixin): def process_request(self, request): print("中间件2请求") def process_response(self, request, response): print("中间件2返回") return response def process_view(self, request, callback, callback_args, callback_kwargs): print("中间件2view") ``` #### 处理CSRF攻击 为了避免跨站请求伪造情况的发生,Django中间件中存在一个中间件`django.middleware.csrf.CsrfViewMiddleware`,只需要在提交数据时,加上`{% csrf_token %}`即可 [^2]。 ### 相关知识 #### 中间件的主要方法 - `process_request(request对象)`:在Django接收到请求后,在URL路由之前调用。 - `process_response(request对象, response对象)`:在视图函数处理完请求后调用,必须返回一个`HttpResponse`对象。 - `process_view`:在Django执行视图函数之前调用。 - `process_exception`:当视图函数抛出异常时调用。 - `process_template_response`(用的比较少):在视图函数返回的对象有`render`方法时调用 [^3]。 #### CSRF相关 - **CSRF是什么**:跨站请求伪造,是一种常见的网络攻击手段。 - **解决方法**:使用`django.middleware.csrf.CsrfViewMiddleware`中间件,在表单中添加`{% csrf_token %}`。 - **全局使用,局部禁用csrf**:在全局启用CSRF防护的情况下,可使用`csrf_exempt`装饰器在局部视图中禁用。 - **全局禁用,局部使用**:在全局禁用CSRF防护的情况下,可使用`csrf_protect`装饰器在局部视图中启用。 - **csrf装饰器神奇(古怪)的用法**:可根据具体需求灵活使用装饰器来控制CSRF防护 [^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值