2014-04-11 19 views

回答

1

docs,讓您的觀點CSRF保護,請按照下列步驟操作:

  1. 中間件'django.middleware.csrf.CsrfViewMiddleware'添加到您的中間件類的列表,MIDDLEWARE_CLASSESsettings.py。 (它應是任何觀點中間件之前假設CSRF攻擊進行了處理。)

  2. 在使用一個POST形式的任何模板,使用csrf_token標籤裏面的元素,如果形式是內部URL例如:

    <form action="." method="post">{% csrf_token %} 
    
  3. 在相應視圖的功能,確保正在使用的'django.core.context_processors.csrf'上下文處理器。

以下步驟將檢查是否已正確包含CSRF令牌。

默認情況下,如果傳入的請求未通過CsrfViewMiddleware執行的檢查,則會向用戶發送'403禁止的'響應。這通常只有在存在真正的跨站點請求僞造時纔會出現,或者由於編程錯誤,CSRF令牌未包含在POST表單中時纔會看到。

有關更多信息,請參閱Docs

+0

Thans,現在做這些後,我怎麼能檢查我的網絡啓用了CSRF? – Amir

+0

編寫測試或實際提交表單。如果您已按照文檔中的說明進行操作,並且在提交表單時看不到403錯誤,則所有內容都應該可以正常工作。 – rnevius

1

檢查settings.py中的MIDDLEWARE_CLASSES元組包含此

'django.middleware.csrf.CsrfViewMiddleware', 

如果這是那裏的元組,然後CSRF安裝。

一些這樣的:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    # Uncomment the next line for simple clickjacking protection: 
    # 'django.middleware.clickjacking.XFrameOptionsMiddleware', 
) 
相關問題