13

1つのアクティブなセッションで、CSRFトークンのフォームごとのリクエスト、または同じトークンの代わりにリクエストごとに変更することはできますか?

4

3 に答える 3

34

requestオブジェクトにアクセスできると仮定します。

from django.middleware.csrf import rotate_token
rotate_token(request)
于 2013-12-01T01:29:15.960 に答える
9

csrfミドルウェアでは、次のような処理を実行し、Cookieセットを上書きします。

request.META["CSRF_COOKIE"] = _get_new_csrf_key()

_get_new_csrf_key()を介してインポートできますfrom django.middleware.csrf import _get_new_csrf_key()。これは一種のプライベートな方法なので、このようなハッキングには反対することをお勧めします。

于 2012-09-27T07:04:10.063 に答える
3

ミドルウェアで使用したい場合:

from django.middleware.csrf import rotate_token

class CSRFRefresh(object):
    def process_response(self, request, response):
        rotate_token(request)
        return response
于 2016-12-14T13:17:20.217 に答える