009ReviewseniorPython / Django Security真实来源改编 Django
Django:修复密码重置 token 与邮箱状态的关系
审查一个 Django auth PR:作者称 password reset token 在邮箱状态异常时仍可能通过校验,并补了一条空邮箱用例。
@@ login_timestamp = '' if user.last_login is None else user.last_login.replace(microsecond=0, tzinfo=None)+ if not getattr(user, user.get_email_field_name(), ''):+ return str(user.pk) + user.password + str(login_timestamp) + str(timestamp) return str(user.pk) + user.password + str(login_timestamp) + str(timestamp)@@+def test_empty_email_does_not_crash(self):+ user = User.objects.create_user('joe', email='')+ token = default_token_generator.make_token(user)+ self.assertIs(default_token_generator.check_token(user, token), True)