python的CSRF設定(一)
阿新 • • 發佈:2019-01-01
python的CSRF設定一
csrf:跨站請求偽造,
csrf 功能分為全域性與區域性設定:
全域性通過中介軟體:
django.middleware.csrf.CsrfViewMiddleware 來完成。
區域性通過:
@csrf_protect,為當前函式強制設定防跨站請求偽造功能,即便settings中沒有設定全域性中介軟體。 @csrf_exempt,取消當前函式防跨站請求偽造功能,即便settings中設定了全域性中介軟體。 設定完成。 使用區域性功能需: from django.views.decorators.csrf import csrf_exempt,csrf_protect,匯入該模組。
1、單個ajax提交設定,在ajax內新增:headers: {‘X-CSRFtoken’: $.cookie(‘csrftoken’)},
$('#btn').click(function () {
$.ajax({
url: '/login/',
type: 'POST',
data: {'Auser': 'root', 'Apwd': '123'},
headers: {'X-CSRFtoken':$.cookie('csrftoken')},
success: function (arg) {
console.log(arg)
}
});
});
2、全域性ajax提交設定,在<script>function內新增;
<script>
$(function () {
// 使用全域性設定不需要對單個ajax設定
$.ajaxSetup({
beforeSend:function (xhr, settings) {
xhr.setRequestHeader('X-CSRFtoken', $.cookie('csrftoken'))
}
});
});
......#其它ajax設定
</script>