django如何取消csrf限制-創(chuàng)新互聯(lián)

這篇文章主要介紹了django如何取消csrf限制,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供福鼎企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站設(shè)計制作、網(wǎng)站制作、H5場景定制、小程序制作等業(yè)務(wù)。10年已為福鼎眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計公司優(yōu)惠進(jìn)行中。

# 導(dǎo)入包

from django.views.decorators.csrf import csrf_exempt

# 使用裝飾器即可避免csrf限制

@csrf_exempt
def add_bookshelf(request):
  user_id = request.POST.get('user_id')
  print(user_id)
  return HttpResponse('123')

補(bǔ)充知識:Django 前后端分離跨域AJAX獲取csrftoken及獲取cookie時遇到的問題

獲取CSRFTOKEN

Django的中間件'django.middleware.csrf.CsrfViewMiddleware'會將csrftoken的值設(shè)置在cookie中。在前后端不分離的項目中,若需要在AJAX使用csrftoken的值則可在js腳本中通過document.cookie直接獲取cookie的值(也可以通過其他更快捷的輪子如js-cookie)。

在前后端分離的項目中(已配置django-cors-headers),無法直接使用js從cookie中獲取csrfToken的值(瀏覽器的同源策略),即使已經(jīng)成功設(shè)置了csrfToken的cookie值

django如何取消csrf限制

解決方法

在中間件中引入

corsheaders.middleware.CorsPostCsrfMiddleware

'corsheaders.middleware.CorsMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'corsheaders.middleware.CorsPostCsrfMiddleware',

有些博客中使用該中間件替代django.middleware.csrf.CsrfViewMiddleware是不可行的,因?yàn)樵撝虚g件并沒有期望中csrf校驗(yàn)的功能,下面為該中間件的源代碼。

class CorsPostCsrfMiddleware(MiddlewareMixin):

  def _https_referer_replace_reverse(self, request):
    """
    Put the HTTP_REFERER back to its original value and delete the
    temporary storage
    """
    if conf.CORS_REPLACE_HTTPS_REFERER and 'ORIGINAL_HTTP_REFERER' in request.META:
      http_referer = request.META['ORIGINAL_HTTP_REFERER']
      request.META['HTTP_REFERER'] = http_referer
      del request.META['ORIGINAL_HTTP_REFERER']

  def process_request(self, request):
    self._https_referer_replace_reverse(request)
    return None

  def process_view(self, request, callback, callback_args, callback_kwargs):
    self._https_referer_replace_reverse(request)
    return None

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“django如何取消csrf限制”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

當(dāng)前文章:django如何取消csrf限制-創(chuàng)新互聯(lián)
本文URL:http://m.kartarina.com/article2/ccigoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、域名注冊、外貿(mào)建站、小程序開發(fā)、軟件開發(fā)網(wǎng)站營銷

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司
主站蜘蛛池模板: 国内精品无码一区二区三区| 人妻少妇无码视频在线| 亚洲国产成人精品无码区在线观看 | 无码精品蜜桃一区二区三区WW| AV大片在线无码永久免费| 加勒比无码一区二区三区| 亚洲中文久久精品无码| 亚洲精品无码日韩国产不卡av| 夜夜精品无码一区二区三区| 人妻无码中文久久久久专区| 丰满少妇人妻无码| 无码少妇丰满熟妇一区二区| 亚洲av日韩av无码| 国产日韩AV免费无码一区二区三区| 久久99精品久久久久久hb无码| 东京热无码一区二区三区av| 大胆日本无码裸体日本动漫| 无码专区中文字幕无码| 成人无码WWW免费视频| 99久无码中文字幕一本久道| 毛片免费全部播放无码| 亚洲va中文字幕无码久久| 国产精品JIZZ在线观看无码| 色综合99久久久无码国产精品| 久久久久亚洲AV片无码下载蜜桃| 久久伊人亚洲AV无码网站| 一级毛片中出无码| 用舌头去添高潮无码视频| 亚洲av无码片区一区二区三区| 国产精品ⅴ无码大片在线看| 中国无码人妻丰满熟妇啪啪软件 | 亚洲人成无码网WWW| 在线无码视频观看草草视频| 无码一区二区波多野结衣播放搜索| 亚洲天堂2017无码中文| 亚洲综合一区无码精品| 亚洲av无码专区国产不乱码| 久久亚洲精品成人无码| 在线无码午夜福利高潮视频| 人妻无码一区二区三区| 久久久91人妻无码精品蜜桃HD|