91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django跨域請求CSRF的方法示例

發布時間:2020-08-22 18:18:14 來源:腳本之家 閱讀:130 作者:森林嶼麓 欄目:開發技術

web跨域請求

1.為什么要有跨域限制

舉個例子:

1.用戶登錄了自己的銀行頁面 http://mybank.com,http://mybank.com向用戶的cookie中添加用戶標識。
2.用戶瀏覽了惡意頁面 http://evil.com。執行了頁面中的惡意AJAX請求代碼。
3.http://evil.com向http://mybank.com發起AJAX HTTP請求,請求會默認把http://mybank.com對應cookie也同時發送過去。
4.銀行頁面從發送的cookie中提取用戶標識,驗證用戶無誤,response中返回請求數據。此時數據就泄露了。
5.而且由于Ajax在后臺執行,用戶無法感知這一過程。

以上就是所謂是CSRF(Cross-site request forgery)攻擊,跨站請求偽造。接下來說一下 Django中處理csrf的方式

正常情況下直接發起一個psot請求,會報錯。錯誤的意思是csrf校驗失敗,request請求被丟棄掉。

那么在django中的post失敗有兩種解決辦法:

解決辦法一:將csrf中間層注釋掉

MIDDLEWARE = [
 
  'django.middleware.security.SecurityMiddleware',
 
  'django.contrib.sessions.middleware.SessionMiddleware',
 
  'django.middleware.common.CommonMiddleware',
 
#  'django.middleware.csrf.CsrfViewMiddleware',
 
  'django.contrib.auth.middleware.AuthenticationMiddleware',
 
  'django.contrib.messages.middleware.MessageMiddleware',
 
  'django.middleware.clickjacking.XFrameOptionsMiddleware',
 
]

此時將不會進行csrf的校驗,但如前面所述,這是一種不安全的行為。而且djano也不推薦使用

解決辦法二:

在前面的提示中有這樣一句話:

<form action="" method="post">{% csrf_token %}

也就是說在網頁中加入csrf_token的標簽就可以通過csrf校驗

Django 提供的 CSRF 防護機制:

1、django 第一次響應來自某個客戶端的請求時,會在服務器端隨機生成一個 token,把這個 token 放在 cookie 里。然后每次 POST 請求都會帶上這個 token,這樣就能避免被 CSRF 攻擊。

2、在返回的 HTTP 響應的 cookie 里,django 會為你添加一個 csrftoken 字段,其值為一個自動生成的 token,在所有的 POST 表單時,必須包含一個 csrfmiddlewaretoken 字段 (只需要在模板里加一個 tag, django 就會自動幫你生成,見下面)

3、在處理 POST 請求之前,django 會驗證這個請求的 cookie 里的 csrftoken 字段的值和提交的表單里的 csrfmiddlewaretoken 字段的值是否一樣。如果一樣,則表明這是一個合法的請求,否則,這個請求可能是來自于別人的 csrf 攻擊,返回 403 Forbidden.

4、在所有 ajax POST 請求里,添加一個 X-CSRFTOKEN header,其值為 cookie 里的 csrftoken 的值

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

翁牛特旗| 张北县| 永修县| 深州市| 漳浦县| 巫山县| 名山县| 仁寿县| 鸡东县| 金秀| 桑日县| 资溪县| 迁西县| 芦山县| 大余县| 沿河| 巴东县| 中西区| 桐城市| 千阳县| 肇源县| 民权县| 习水县| 吴忠市| 屯留县| 富阳市| 公安县| 上蔡县| 沈丘县| 西峡县| 广安市| 米脂县| 兴业县| 吉安县| 安平县| 广南县| 上林县| 宝清县| 延庆县| 大渡口区| 全州县|