我正在使用 Python 的 crypt 包将加密密码保存在 Django 网站的 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
如果我用变量and加密密码request.POST['password'] = 'ABC123abc'
,它工作正常。但是,当我尝试登录时,如果我使用密码'ABC123abc[trailing_chars]'
,其中 trailing_chars 可以是任何有效字符串,我仍然能够登录。这是为什么?它构成了一个很大的安全漏洞。