我很好奇:我知道 Django 中有两种 csrf 保护方式:模板中的 {% csrf_token %}
和 View 中的 @csrf_protect
。
所以,问题是:它们可以互换吗?我的意思是我可以只使用例如 @csrf_protect
我的 View 没有 {% csrf_token %}
我的模板中的标签和效果会一样吗?
我问这个是因为我在最近的 Django 项目中使用了 mako 并且没有像 {% csrf_token %}
这样的标签...
谢谢!!!
最佳答案
两者都需要。 {% csrf_token %}
添加包含在 POST
请求中的隐藏字段。而 @csrf_protect
添加了一个由 {% csrf_token %}
使用的上下文变量。
关于Django {% csrf_token %} 或@csrf_protect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8110390/