码迷,mamicode.com
首页 > 其他好文 > 详细

django csfr中间键

时间:2019-10-06 13:00:56      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:site   登录   NPU   name   attribute   出现   设置   exe   实例   

大家好,今天给大家介绍一下,csrf

CSRF(cross-site reuqest forgery):别人以你的身份向网站发送请求。

实例场景:假如说,你现在打开了某个银行网站,然后浏览器突然,出现一个美女图片,处于好奇,你点击图片,而图片是一个转账的超链接,想想这后果,是不是色字头上有把刀、、、

分析:当你打开银行网站登录之后,银行网站会返回浏览器一些cookie,sessionID,你在银行网站上进行操作时候,网站是通过这些cookie,和sessionID来判断用户是否登录,以及是哪个用户操作,当点击图片时候,图片是个转账的超链接,点击图片实质是向网站发送转账请求,这是会携带cookie 和sessionID进行验证,从而进行转账,而这,就是别人以你的名义操作,就是csrf

 

在django框架中,为了解决这个问题,设置有 ‘django.middleware.csrf.CsrfViewMiddleware‘, 这个中间件。它的作用是,当发送post请求时候,会验证token。token就是令牌。在表单中加入{%csrf_token%}

当你在一个有表单的页面时候,检查网页源代码会有:

<input type=‘hidden‘ name=‘csrfmiddlewaretoken‘ value=‘LzK9a3nThYyjVrZgCZAip9piQ6zMzUGwpuwDbSYDxZmu9D6bU1CqmNX5zSJ31RGt‘ />

当你提交表单时候,服务端会验证这个 value,而这个别人一般猜不到,从而能后避免csrf攻击。

 

大家在刚开始学习django时候,有时候不需要中间件验证,则可以在setting.py中注释掉中间价,或者在视图函数加上装饰器:@csrf_exempt,这样就不会进行csrf中间件验证了。

django csfr中间键

标签:site   登录   NPU   name   attribute   出现   设置   exe   实例   

原文地址:https://www.cnblogs.com/yanhonghong/p/11627010.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!