1. 程式人生 > >python的CSRF設定(一)

python的CSRF設定(一)

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>