2010-04-29 23 views
1

我有Django的博客評論的形式,我想了解以下內容:添加CSRF保護,以簡單的點評形式在Django

  1. 我應該添加CSRF的形式?
  2. 如果我想使用簡單的「render_comment_form」方法,我該如何添加它?
  3. 如果我不能像這樣添加它,那麼最好的做法是什麼?

關於這個問題的每個教程或討論似乎都有不同的方法,我不確定我是否理解它是如何工作的。

+0

在django 1.2中更改了CSRF保護的處理,所以最好提供您想要使用的django版本。 – 2010-04-29 14:32:51

+0

是的,Django 1.2 – Vernon 2010-04-29 14:44:43

回答

1

我的回答假設您正在使用Django 1.2:

  1. 是的!您應該保護通過POST請求發送給服務器的所有數據免受CSRF攻擊。
  2. 您不需要自己添加令牌。這已經由django完成了。看看default template that is used by the render_comment_form tag,你會看到,csrf_token已經包含在內。您可以在您的項目中覆蓋此模板,並將CSRF令牌包括在內,與將{% csrf_token %}寫入表單一樣簡單。
  3. 即使沒有在模板中設置標記,也可以保護表單。看看django's documentation about that topic。但是這種方法被標記爲傳統方法所以不建議使用它 - 它僅用於向前兼容版本低於1.2的Django版本。