难道无法将此密码设置为在PASSWORD_RESET_TIMEOUT_DAYS内有效吗?

问题描述 投票:0回答:1

Django不允许将变量PASSWORD_RESET_TIMEOUT_DAYS设置为少于一天。

作为一种解决方法,我正在考虑使用以下格式在密码重置激活URL中发送时间戳:

path('activate/<uidb64>/<timestamp>/<token>/', views.activate, name='activate')

使用时间戳,然后我可以手动检查时间戳是否在少于一天的时间内。

是否从安全角度考虑这样做是否不安全?

django security change-password
1个回答
0
投票

Django不允许将变量PASSWORD_RESET_TIMEOUT_DAYS设置为少于一天。

此问题为addressed in Django 3.1。不推荐使用PASSWORD_RESET_TIMEOUT_DAYS,而推荐使用PASSWORD_RESET_TIMEOUT,它需要以秒为单位的值。

同时,您可以创建自己的PasswordResetView子类并提供执行PasswordResetView的自己的token_generator类。

如果要继承Django <3.1中的现有生成器,请显示what Django 3.1 will do,其中显示了需要覆盖的内容。

但是,在您担心这样做之前,可能值得阅读here is the diff,了解更长超时的安全隐患,并检查您是否真的需要较短的超时来达到目的。

© www.soinside.com 2019 - 2024. All rights reserved.