django中http請求報403解決方案

2021-09-27 04:18:09 字數 2095 閱讀 8558

不再贅述,網上有的是

views中並沒有寫死到底是接收post還是get,我們可以自己進行判斷,如不判斷,都可以接收

如下:

@csrf_exempt

)

get請求返回如下:

post請求返回如下:

用postman等進行請求時,會報403

解決方案如下:

1、由於我們的是測試介面,所以直接新增裝飾器csrf_exempt,不進行跨站檢測即可

from django.views.decorators.csrf import csrf_exempt

@csrf_exempt

)

2、注釋掉settings.py中的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'

,]

此方法不可取,會導致整個專案面臨跨站攻擊的風險

3、在模版檔案中新增csrf,如下:

>

>

尚未登入,請登入:h1

>

此方法用postman等工具訪問時,就會報403

4、較優方法,目前沒太搞懂

django的csrf安全工作順序是:先從後台獲取csrf_token 並傳送給前端,然後前端在進行form表單提交時,把帶有名為csrfmiddlewaretoken,值為 csrf_token 的字段一起傳送給後端進行校驗。

所以此解決方案便是按照此邏輯,先通過乙個介面獲取 csrf_token,然後在form表單中一起提交給後端校驗

from django.template.context_processors import csrf

defget_csrf

(request)

:#生成 csrf 資料,傳送給前端

)

然後在另乙個post請求中 加引數 名為:csrfmiddlewaretoken 值為 get_csrf函式返回的csrf_token ,這樣校驗便成

http請求報400錯誤的原因分析

http 400 錯誤 請求無效 bad request 在ajax請求後台資料時有時會報 http 400 錯誤 請求無效 bad request 出現這個請求無效報錯說明請求沒有進入到後台服務裡 原因 1 前端提交資料的欄位名稱或者是字段型別和後台的實體類不一致 或 前端提交的引數跟後台需要的引...

django中的請求

1 django中的請求request 我們後端在寫好檢視處理函式的之後前端呼叫的話,有時候需要給我們傳引數,那麼django的request物件是如何獲取這些引數的呢?傳參方式 get,1.url傳參例如 weather str city int date 我需要獲取指定城市的指定日期的天氣資料,...

http中請求型別

序號 方法備註 1get 請求指定的頁面資訊並返回實體主體 2head 類似於get請求,只不過返回的響應中沒有具體的內容,用於獲取報頭 3post 向指定資源提交資料進行處理請求 4put 5delete 請求伺服器刪除指定頁面 6connect http 1.1協議中預留給能夠將連線改為管道方式...