步骤
要在Django中启用CSRF保护,您可以按照以下步骤进行操作:
1. 在Django的settings.py
文件中,确保django.middleware.csrf.CsrfViewMiddleware
中间件已添加到MIDDLEWARE
设置中。通常,这个中间件默认就会包含在其中。
2. 在HTML模板中,确保在表单中包含{% csrf_token %}
模板标签。生成一个隐藏的输入字段,其中包含CSRF令牌。
<form method="post">{% csrf_token %}<!-- 其他表单字段 --><input type="submit" value="Submit">
</form>
3. 在views.py函数中,确保请求的方法为POST时,Django会自动验证CSRF令牌。如果验证失败,将引发一个Forbidden
异常。无需手动执行验证。
from django.views.decorators.csrf import csrf_protect
启用CSRF保护后,Django将自动为每个请求生成和验证CSRF令牌。确保在表单中包含CSRF令牌,并使用@csrf_protect
装饰器来保护需要进行POST请求的视图函数。
注意,在使用CSRF保护时,确保在每个需要进行POST请求的表单中包含{% csrf_token %}
模板标签,否则请求将被拒绝。
4. 测试验证结果
源代码