【发布时间】:2018-06-08 17:29:59
【问题描述】:
我正在与 Django 合作创建一个网站,并收到了一些关于 CSRF 的问题。我使用django.middleware.csrf.CsrfViewMiddleware 并在我的POST 表单中添加<form action="" method="post">{% csrf_token %}。
当我测试网站时:
GET / HTTP/1.1
Host: 123.207.137.168:8000
然后,我得到了饼干
Set-Cookie:csrftoken=Ev8veOH89vFDnG3a0GJUsMXA1oGZXxqXRw2nFWiKrvZ9UE10niTlZCiOxdnoKfTv; expires=Thu, 27-Dec-2018 06:37:41 GMT; Max-Age=31449600; Path=/
但是在html中:
<input type='hidden' name='csrfmiddlewaretoken' value='JswHLk4fNpxHkh0OObD1uKiOxSDUzkMDWtqzcsFR5pRdRfYEbNNs1AD23Hkjm2fb' />
所以我想知道为什么csrftoken 和csrfmiddlewaretoken 不同,如果请求来自用户或黑客,服务器如何使用这两个值来验证?
【问题讨论】: