- request请求中包含csrf_processing_done属性,则不进行csrf验证
- 视图函数中包含csrf_exempt属性,则不进行csrf验证
- 如果是GET、HEAD、OPTIONS、TRACE请求,则不进行csrf验证
- request请求中包含_dont_enforce_csrf_checks属性,则不进行csrf验证
- https请求头中如果不包含HTTP_REFERER,则拒绝访问
- 请求头中不包含CSRF_COOKIE,则拒绝访问
- POST请求中携带csrfmiddlewaretoken参数,如果验证通过就可以访问
- PUT/DELETE请求头中携带CSRF_HEADER_NAME配置,如果验证通过就可以访问
- django.contrib.auth.middleware.AuthenticationMiddleware这个中间件中为我们的request对象添加了user属性,主要是获取session中SESSION_KEY值(settings配置中),从用户表中查询对应主键,得到用户对象,将其付给request.user
- django.contrib.messages.middleware.MessageMiddlewareDjango的消息框架,主要是向目标中推送消息内容,在前端可通过以下方式使用
{% if messages %}<ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}" {% endif %}> {% if mesage.level == DEFAULT_MESSAGE_LEVELS.ERROR %}Important: {% endif %} {{ message }} </li> {% endfor %}</ul>{% endif %}【Django中间件看完这篇彻底明白】
推荐阅读
- 人的寿命与睡觉方式息息相关?古人说的是哪“三觉”?看完涨知识
- 看完这篇Nginx介绍,你也可以配置属于自己的网站
- 用手挖鼻孔?看完这些你该后悔一整年
- 看完此文章若你还不能完美的入门Python,我将永远退出IT界
- CDN与缓存全面详聊,看完之后,大部分程序员收藏了
- 家庭炒菜时用白醋还是陈醋?看完后明白了,原来差别这么大
- RabbitMQ 使用指南
- 读《幻城》有感 幻城读后感
- MySQL 数据库使用
- 家里退休老人去世了,按照规定有5笔钱可领,看完记得转告家人
