我最近的 Django 项目使用了 mako 模板。
关于跨站请求伪造 CSRF。
在 django 模板中,有一个标签 {% csrf_token %}
来防止黑客攻击。
Mako 模板怎么样?是否有任何类似的 csrf_token
或者有其他保护机制???
谢谢!
最佳答案
我今天遇到了同样的问题(这就是我来到这里的原因)。我至少找到了一个解决方案,即通过 HTML 表单将一些 POST 数据传递到另一个 View 。这是:
从您的第一个 View 中,获取 CSRF token 并将其添加到您的 (Mako) 上下文:
from djangomako.shortcuts import render_to_response as render from django.core.context_processors import csrf def first_view(request): """This view generates a form whose action is 'second_view'.""" context = { "csrftoken": csrf(request)["csrf_token"] } return render("path/to/yourtemplate.html", context)
yourtemplate.html 的表单必须有一个名为“csrfmiddlewaretoken”的字段,其值为 CSRF token ,我们将其作为“csrftoken”放置在上下文中。如:
<input type="hidden" name="csrfmiddlewaretoken" value="${ csrftoken }" />
关于django - Mako csrf_token 就像 Django 模板中一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8106416/