解决表单提交时候防攻击的代码问题


发布时间:2019-02-15 13:08    作者: Uncle Hui   已过去:1 年,3 月   阅读总量:1071 已被赞:0


之前在学习django的时候,在template中写form时,出现错误。百度,google后要加{% csrf_token %}才可以,之前一直也没研究,只是知道要加个这个东西,具体是什么也不明白。 前段时间看了 《web前端黑客技术解密》一书,最近又看见了csrf_token,研究了下,下面是自己的理解。

目的:
    csrf_token 是为了防止csrf(跨站请求伪造),什么是csrf,这篇文章讲的很好:这里。文章最后也说到了,防止csrf的手段就有给form加个token。

具体做了什么:
    在渲染模板时,django会把    {% csrf_token %} 替换成一个<input type="hidden", name='csrfmiddlewaretoken' value=服务器随机生成的token>元素。在提交表单的时候,会把这个token给提交上去。

    django默认启动 'django.middleware.csrf.CsrfViewMiddleware'中间件, 这个中间件就是来验证csrf_token的。如果没有加csrf_token,就会出错。
 

点赞

0




登陆后方可评论