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

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

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

一、在django后臺(tái)處理

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

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頁(yè)的from中添加{% csrf %},后臺(tái)重定向語法如下:

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

二、前端處理

對(duì)所有的ajax請(qǐng)求加上以下語句:

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

這樣向后臺(tái)的請(qǐng)求都會(huì)帶django生成的那個(gè)csrf_token值。中間件csrf模塊會(huì)截取判斷csrf_token值是否一致,如果一致則請(qǐng)求合法。

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

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

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

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

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

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

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

相關(guān)文章

最新評(píng)論

准格尔旗| 日土县| 商南县| 山东| 禄劝| 临洮县| 赤水市| 凤山县| 县级市| 海南省| 汪清县| 海淀区| 习水县| 锡林郭勒盟| 蛟河市| 城市| 广元市| 芮城县| 从江县| 涟水县| 阿克苏市| 彰化市| 高雄县| 西华县| 灌阳县| 噶尔县| 湖州市| 龙井市| 老河口市| 屏东县| 都安| 高青县| 兰州市| 万盛区| 盱眙县| 四子王旗| 抚松县| 宜兴市| 长兴县| 双牌县| 宁晋县|