Django {% csrf_token %} 或@csrf_protect

标签 django csrf protection django-csrf

我很好奇:我知道 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/

相关文章:

python - Django Rest Framework——如何获取urls.py中的Http头信息

python - 使用 django-users2 时无法导入 users.form

elixir - 如何在Phoenix框架中有选择地禁用CSRF检查

CodeIgniter仅在某些页面中使用CSRF保护

image - 保护Web应用程序中的图像媒体

c++ - 如何在 C++ 中创建不可删除的注册表项(或文件)

python - Django Rest Framework - Django 嵌套序列化器一对多关系

python - 在pip安装elasticsearch之后修改config/elasticsearch.yml

ruby-on-rails - 如何在rspec rails请求测试中丢失authenticity_token进行POST?

git - 保护文件免受 Git 攻击