CSRF(Cross Site Request Forgery, 跨站域请求伪造)是一种网络的攻击方式
Django防御csrf攻击
django在setting文件中可以设置是否开启CSRF功能,默认是开启的,要关闭则注释掉,
Django默认对所有的POST请求都进行csrftoken验证,若验证失败则返回403错误。
两种csrf验证方式
1. @csrf_exempt装饰器
(1). 直接在试图函数上定义装饰器
2. 放在请求参数中
(1). form 标签里加上 {% csrf_token %}, 会转换成隐藏的验证信息
<form action="" method="post">
{% csrf_token %}
...
</form>
(2). js 中 获取隐藏的 input标签value值
// 获取隐藏的 csrf value
var csrf = $('input[name="csrfmiddlewaretoken"]').val();
(3). 组装csrf验证信息 到请求参数中
data: {"user": user, 'csrfmiddlewaretoken': csrf},