最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解利用django中間件django.middleware.csrf.CsrfViewMiddleware防止csrf攻擊

 更新時間:2018年10月09日 11:03:57   作者:love_xiaohuihui  
這篇文章主要介紹了詳解利用django中間件django.middleware.csrf.CsrfViewMiddleware防止csrf攻擊,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一、在django后臺處理

1、將django的setting中的加入django.contrib.messages.middleware.MessageMiddleware,一般新建的django項(xiàng)目中會自帶的。

MIDDLEWARE_CLASSES = [
  'django.middleware.security.SecurityMiddleware',
  'django.contrib.sessions.middleware.SessionMiddleware',
  'django.middleware.common.CommonMiddleware',
  'django.middleware.csrf.CsrfViewMiddleware',
  'django.contrib.auth.middleware.AuthenticationMiddleware',
  'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
  'django.contrib.messages.middleware.MessageMiddleware', 
] 

2、在templete的html頁的from中添加{% csrf %},后臺重定向語法如下:

return render_to_response(xxx.html', context_instance=RequestContext(request))

二、前端處理

對所有的ajax請求加上以下語句:

$(function () {
  $.ajaxSetup({
    data: {csrfmiddlewaretoken: '{{ csrf_token }}'},
  });
})

這樣向后臺的請求都會帶django生成的那個csrf_token值。中間件csrf模塊會截取判斷csrf_token值是否一致,如果一致則請求合法。

三、對于ajax的復(fù)雜對象,例如[{"id":"001","name":"小明"},{"id":"002","name":"小軍"}].,后臺post的處理

必須將這種對象轉(zhuǎn)化為json格式傳到后臺,后臺在反序列化即可。(不要用ajax的其他序列化格式,其深度序列化后,django后臺解析比較困難)

contentType不需要指定utf-8,否則post解析出錯

四、csrf攻擊與預(yù)防

csrf利用session和cookie的時效性進(jìn)行攻擊。他會獲取請求的cookie,在session時效內(nèi)進(jìn)行請求。因此對于重要信息,重要功能進(jìn)行單次請求處理。即請求一次失效。

例如:請求頭中加入驗(yàn)證token信息,用完即失效。django的中間件csrf_token就是此原理防止的。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

桂林市| 远安县| 乐都县| 洞口县| 紫云| 石首市| 雅安市| 斗六市| 刚察县| 东阿县| 神池县| 临桂县| 岱山县| 乐都县| 多伦县| 大关县| 宿松县| 三穗县| 克什克腾旗| 南汇区| 北辰区| 吉水县| 布拖县| 琼结县| 河北省| 亚东县| 沙坪坝区| 莫力| 中超| 鹿邑县| 白朗县| 武冈市| 二连浩特市| 施秉县| 惠州市| 重庆市| 太仆寺旗| 元氏县| 伊吾县| 临沧市| 沙河市|