Python の crypt パッケージを使用して、Django Web サイトの MySQL データベースに暗号化されたパスワードを保持しています。これがバグかどうかはわかりませんが、使用しているコードは次のとおりです。
パスワードを暗号化/保持するには:
user.password = crypt(request.POST['password'], netid)
user.save()
ログイン時に正しいパスワードを確認するには:
if crypt(password, email) == user.password:
# Grant acccess to the user's profile, etc.
問題は次のとおりです。netid = test@example.com
変数とでパスワードを暗号化すると、正常に機能しますrequest.POST['password'] = 'ABC123abc'
。ただし、ログインしようとするときに password を使用すると'ABC123abc[trailing_chars]'
、trailing_chars は任意の有効な文字列にすることができますが、ログインできます。これはなぜですか? このままでは大きなセキュリティ ホールになりそうです。