我在 Django 中有博客评论表单,我想知道以下内容:
- 我应该在表单中添加 CSRF 吗?
- 如果我想使用简单的“render_comment_form”方法,如何添加它?
- 如果我无法这样添加,最佳做法是什么?
关于该主题的每个教程或讨论似乎都有不同的方法,我不确定我是否理解它是如何工作的。
最佳答案
我的回答假设您使用的是 Django 1.2:
- 是的!您应该保护通过 POST 请求发送到服务器的所有数据免受 CSRF 攻击。
- 您不需要自己添加 token 。这已经由 django 完成了。看看default template that is used by the
render_comment_form
tag您将看到,csrf_token
已包含在内。您可以在项目中覆盖此模板,并将 CSRF token 包含到其中,就像将{% csrf_token %}
写入表单一样简单。 - 即使您没有在模板中设置 token ,也有一种方法可以保护您的表单。看看django's documentation about that topic 。但此方法被标记为旧版方法,因此不建议使用该方法 - 提供它只是为了向后兼容早于 Django 的版本1.2.
关于python - 为 Django 中的简单评论表单添加 CSRF 保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2738120/