1

数千人の登録ユーザーがいるサイトを持っています。誰かが私のデータベースからパスワードを盗んだという不運な出来事に備えて、プラン Aプラン Bを用意したいと思います。プラン B は、すべてのユーザー パスワードを (小さな Python スクリプトとランダム パスワード ジェネレーターを使用して) 変更し、それらの新しいパスワードをユーザーにメールで送信することだと思います。私はそれを簡単に行うことができます。

プラン A (より適切に聞こえますが、その方法がわかりません) は、ユーザーが攻撃後に最初にページにアクセスしたときに、古いパスワードを期限切れにして新しいパスワードを作成するようユーザーに強制することです。

Django にはこのような機能がありますか? どうすれば効率的かつ迅速に行うことができますか?

注: 現時点では、私の User/UserProfile モデルは、そのような状況を念頭に置いて設計されていません。

4

2 に答える 2

1

私の意見では、プラン B を選択する必要があります。管理コマンドを確認してください。

from django.core.management.base import NoArgsCommand
from django.contrib.auth.models import User

class Command(NoArgsCommand):
    help = _('Change password of all users.')
    def handle_noargs(self, **options):
        users = User.objects.all()
        for user in users:
            # generate random password
            random_pwd = 'some random password'
            user.set_password(random_pwd)
            user.save()
            # send email to user
于 2013-06-06T09:07:18.850 に答える