django csrf中间件如何进行校验

django csrf中间件如何进行校验

1 .当我们普通的访问一个GET页面的时候,没有任何{%csrf_token%},渲染的时候,context['csrf_token']不会被填充,就是不会去触发get_token方法,所以你请求几次都不会有Cookies。当我们开发一个网站的时候,如果启用CSRF防御,用户登录之前需要提交表单,表单的这个页面会嵌入{%csrf_token%},会先触发当前登录页面的GET请求,页面render的时候,根据上面第三步,会触发lazy的get_token函数,这个函数会自动生成csrf_token,如果cookies中有的话就不生成,用csrf_token清洗出后32位,再解析出秘钥,返回给表单一个新的csrfmiddlewaretoken,至此登录页面的Cookies也已经生成并返回了,而且表单动态生成了一个csrfmiddlewaretoken。


django csrf中间件如何进行校验

 django csrf中间件如何进行校验

django csrf中间件如何进行校验

 django csrf中间件如何进行校验

django csrf中间件如何进行校验

 中间件的校验过程

django csrf中间件如何进行校验

 django csrf中间件如何进行校验

django csrf中间件如何进行校验

 django csrf中间件如何进行校验

 django csrf中间件如何进行校验

django csrf中间件如何进行校验