Django - Wie CSFR auf öffentlichen Seiten zu tun? Oder, noch besser, wie sollte es gebrauchte Zeit sein?

StackOverflow https://stackoverflow.com/questions/2429855

Frage

Nach der Lektüre dieses: http: //docs.djangoproject.com/en/dev/ref/contrib/csrf/#how-to-use-it

Ich kam zu dem Schluss, dass es nicht gültig ist, diese zu verwenden, außer wenn Sie der Person vertrauen, die die Seite verwendet, die es einträgt. Ist das richtig?

Ich glaube, ich verstehe nicht wirklich, wenn es sicher ist, dies zu verwenden, da diese Aussage:

  

Dies sollte nicht für POST Formen erfolgen   dass Ziel externe URLs, da die   würde dazu führen, die CSRF-Token zu sein   durchgesickert, zu einer Schwachstelle führt.

Der Grund, es ist verwirrend ist, dass; mir eine „externe URL“ wäre Seite auf, dass nicht ein Teil meiner Domain (dh ich besitze www.example.com und eine Form gebracht, die Beiträge zu www.spamfoo.com. Dieses offensichtlich nicht der Fall sein, da die Menschen Django nicht zur Erzeugung Formulare verwenden würde, dass Post anderer Leute Websites, aber wie könnte es wahr sein, dass Sie nicht CSRF-Schutz auf öffentliche Formen (wie ein Login-Formular) verwenden kann?

War es hilfreich?

Lösung

Mit Entschuldigungen nicht die spezifische Quelle der Verwirrung zu verstehen, werde ich sagen, dass die Frage, die Sie stellen sollten, ist, wenn sie nicht CSRF-Schutz zu verwenden. Sie haben bereits in diesem Fall von dem docs rufen:

  

Dies sollte nicht für POST Formen erfolgen   dass Ziel externe URLs, da die   würde dazu führen, die CSRF-Token zu sein   durchgesickert, zu einer Schwachstelle führt.

Wenn Sie ein Formular zu Ihrer Domain Mitteilung verfassen, werden Sie CSRF-Schutz wollen standardmäßig aktiviert, wenn Sie einen bestimmten Grund haben sie zu deaktivieren (was selten sein sollte, als nicht).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top