在Django中,CSRF(Cross-Site Request Forgery)保護是默認開啟的,開發者只需要按照以下步驟進行配置即可:
在所有的表單提交頁面的表單中添加CSRF令牌,可以通過{% csrf_token %}
模板標簽來實現,例如:
<form action="/submit/" method="post">
{% csrf_token %}
<!-- other form fields -->
<button type="submit">Submit</button>
</form>
確保Django的CSRF中間件已經啟用,可以在MIDDLEWARE
設置中添加'django.middleware.csrf.CsrfViewMiddleware'
,例如:
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_protect
裝飾器:對于需要CSRF保護的視圖函數,可以使用@csrf_protect
裝飾器來確保CSRF令牌的驗證,例如:
from django.views.decorators.csrf import csrf_protect
@csrf_protect
def submit_form(request):
if request.method == 'POST':
# 處理表單提交
else:
# 返回表單頁面
通過以上步驟,開發者可以在Django中實現CSRF保護。