亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

django如何取消csrf限制

發布時間:2021-05-25 10:22:06 來源:億速云 閱讀:376 作者:小新 欄目:開發技術

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

# 導入包

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')

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

獲取CSRFTOKEN

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

在前后端分離的項目中(已配置django-cors-headers),無法直接使用js從cookie中獲取csrfToken的值(瀏覽器的同源策略),即使已經成功設置了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是不可行的,因為該中間件并沒有期望中csrf校驗的功能,下面為該中間件的源代碼。

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

感謝你能夠認真閱讀完這篇文章,希望小編分享的“django如何取消csrf限制”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

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

AI

留坝县| 枞阳县| 正阳县| 兴安盟| 正安县| 武宁县| 桦川县| 万山特区| 郯城县| 苗栗市| 高密市| 晋江市| 湟源县| 句容市| 夏河县| 三河市| 济宁市| 太白县| 呼图壁县| 绍兴市| 年辖:市辖区| 林口县| 巩义市| 文登市| 宜丰县| 营口市| 扶余县| 汤阴县| 宜兴市| 乐东| 普定县| 铅山县| 密山市| 河西区| 永川市| 长汀县| 都兰县| 钟祥市| 杂多县| 临湘市| 安宁市|