1. ホーム
  2. ジャンゴ

[解決済み】Django の SECRET_KEY を変更した場合の影響について

2022-04-05 18:54:30

質問

私は間違えて、Django プロジェクトの SECRET_KEY を公開リポジトリに登録しました。

この鍵は秘密にしておくべきだった ドキュメントによると .

Djangoプロジェクトは稼働しており、アクティブなユーザーもいて、しばらくは動いています。を変更した場合、どのような影響があるでしょうか? SECRET_KEY ? 既存のユーザー、クッキー、セッションなどは影響を受けるのでしょうか?明らかに、新しい SECRET_KEY は、もはや公開された場所に保存されることはありません。

解決するには?

Edit: この回答は django 1.5 に基づいています。

SECRET_KEY はいろいろなところでたくさん使われているので、まず何が影響を受けているかを指摘し、そのリストを見ながら正確な説明をするようにします。

を使用しているものの一覧です。 SECRET_KEY 直接または間接的に

実際には、ここで紹介した項目の多くが SECRET_KEY を通して django.utils.crypt.get_random_string() で、これをランダムエンジンのシードに使用します。の値が変わっても影響はありません。 SECRET_KEY .

価値の変化により直接影響を受けるユーザーエクスペリエンスは

  • セッションの場合、データのデコードが壊れます。これは、あらゆるセッションバックエンド(クッキー、データベース、ファイルベース、キャッシュ)に対して有効です。
  • すでに送信されたパスワードリセットトークンは機能せず、ユーザーは新しいものを要求する必要があります。
  • コメントフォーム django.contrib.comments は、値の変更前に要求され、値の変更後に送信された場合、検証されません。これは非常に些細なことだと思いますが、ユーザーを混乱させるかもしれません。
  • メッセージ ( django.contrib.messages ) は、コメントフォームと同じタイミングではサーバーサイドで検証されません。

アップデイト : 現在、django 1.9.5 で作業していますが、ソースをざっと見たところ、ほとんど同じ答えが返ってきました。後で徹底的に調べるかもしれません。