csrf攻击的原理和解决方法网上一搜一大把
https://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
这里主要说一下django的解决办法。
1、django给了一个中间件解决csrf攻击’django.middleware.csrf.CsrfViewMiddleware’,
开启了这个中间件,那么所有的post、put、head都需要带上csrf_token这个字符串
2、在使用这个中间件时需要前端在提交的时候带上csrf_token。
具体方式就是
1)、在表单提交时带上{% csrf_token %}
{% csrf_token %}是一个input框。具体内容就是
<input type="hidden" name="csrfmiddlewaretoken"
value="5lJZEmgr5CkrcXBfcvAf2zWvnW2n6uC52UKurWwbrEZSio256LzgF0UqvkX74cb4">
其中的value就是具体的csrf_token内容。在提交给django后台时会验证这个csrf_token。
2)、在使用ajax提交的时候,因为没有办法使用这个input框所以需要自己携带这个csrf_token。
具体携带方式有两种,一中是在post时通过传参的方式携带
$.ajax({
url:"{% url 'csrf:csrff' %}",
type:"post",
data:{
code:'asdsa', 'csrfmiddlewaretoken': csrf_token},
da