我正在开发一个dJango网站并按照教程保护它免受CSRF的侵害,我做了一些事情并且不确定它现在是否写入安装,我怎样才能看到或检查它?
答案 0 :(得分:1)
从docs开始,为您的观点启用CSRF保护,请按以下步骤操作:
将中间件'django.middleware.csrf.CsrfViewMiddleware'
添加到 settings.py 中的中间件类列表MIDDLEWARE_CLASSES
。 (它应该出现在假设已经处理了CSRF攻击的任何视图中间件之前。)
在使用 POST 表单的任何模板中,如果表单用于内部网址,请在元素内使用csrf_token
标记,例如:
<form action="." method="post">{% csrf_token %}
在相应的视图函数中,确保正在使用'django.core.context_processors.csrf'
上下文处理器。
按照这些步骤检查是否正确包含CSRF令牌。
默认情况下,如果传入请求未通过CsrfViewMiddleware
执行的检查,则会向用户发送'403 Forbidden'响应。这通常只有在存在真正的跨站点请求伪造时才会出现,或者由于编程错误而导致POSTF表单中未包含CSRF令牌时。
有关详细信息,请参阅Docs。
答案 1 :(得分: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',
)