beim Lesen djangobook chapter stieß ich auf den Abschnitt, der eine csrf-Exploit erwähnt, wo ein Abmeldelink in eine versteckte bösartige Website gesetzt wurde.django Abmeldung mit einem Link oder Formular zu csrf Exploit zu verhindern
<a href="{% url my_logout %}" > Logout </a>
wo die my_logout URL auf django.contrib.auth.views.logout_then_login
urlpatterns=patterns('django.contrib.auth.views',
url(r'^logout/$', 'logout_then_login', {}, name = 'my_logout'),
)
Jetzt:
In einem Web-App Ich habe django verwenden, hatte ich einen ähnlichen Logout-Link
base.html verwendet Nachdem ich über csrf attack gelesen habe, befürchte ich, dass eine bösartige Seite mir auch Probleme bereiten kann. Also würde ich gerne ein Formular verwenden, um die Abmeldung durchzuführen.
Ich dachte, ich mag dieses
base.html tun konnte:
...
<form method="post" action=".">{% csrf_token %}
<input type="hidden" name="next" value="{{next}}" />
<input type="hidden" name="confirm" value="true" />
<input type="submit" value="Logout" />
</form>
...
Nun, wie soll ich schreiben die Ansicht dieses Formular zur Bearbeitung Wenn ich die verborgenen Variablen zu verarbeiten (confirm
zu? überprüfen, ob Abmeldung durchgeführt werden sollte und next
, um zur vorherigen Ansicht zu gehen), kann ich immer noch die django.contrib.auth.views.logout_then_login
Methode verwenden?
Kann mir bitte jemand sagen, ob ich das richtig mache?
Dank im Voraus
@ClaudeVedovini fühlte sich schnell jemand tippte, wenn ich es bearbeite wurde, ha = p – okm
I würde fast die gleiche Antwort posten :) Jedenfalls würde ich hinzufügen, dass ich nicht denke, dass das wirklich nützlich ist. CSRF-Exploits werden verwendet, um Benutzer dazu zu bringen, Aktionen in Anwendungen auszuführen, in denen sie angemeldet sind. Es ist nicht wirklich wichtig, sie zum Abmelden zu zwingen. –
@ClaudeVedovini Ja, aber manchmal ist es schädlich, wenn der Angreifer beabsichtigt, Sie für eine Weile abzumelden oder auf Ihre neue Login-Prozedur zu warten – okm