После прочтения этого: http://docs.djangoproject.com/en/dev/ref/contrib/csrf/#how-to-use-itDjango - Как сделать CSFR на общедоступных страницах? Или, еще лучше, как его использовать?
Я пришел к выводу, что она не действует, чтобы использовать это для того, когда вы доверяете человеку, который использует страницу, которая вербует его исключение. Это верно?
Я предполагаю, что я не очень понимаю, когда это безопасно использовать это из-за этого заявления:
Это не должно быть сделано для POST формирует , что предназначаться внешние URL-адреса, так что вызовет CSRF токен просочился, что привело к уязвимости.
Причина, по которой это сбивает с толку: для меня «внешний URL» будет страницей, которая не является частью моего домена (т. е. я владею www.example.com и размещаю форму, которая публикуется на www.spamfoo.com). Это, очевидно, не может быть поскольку люди не будут использовать Django для создания форм, которые публикуются на сайтах других людей, но как можно утверждать, что вы не можете использовать защиту CSRF для публичных форм (например, форму для входа)?
На самом деле, у меня есть случай использования, где форма * * отправлена на другой сайт. Это небольшой сайт электронной коммерции, в котором используется корзина для покупок от электронной коммерции Mal (http://www.mals-e.com/). Сайт, использующий это, не написан в Django, но нет причин, по которым что-то подобное не может произойти с сайтом Django. –
Я думаю, вам нужно лучше понять, почему CSRF является уязвимостью. Хороший шаг - прочитать о той же политике происхождения: http://code.google.com/p/browsersec/wiki/Part2 – rook