我设置了“忘记密码”系统,该系统会向用户发送带有重置链接的电子邮件。问题是:如何防止滥用此系统?我怎样才能确保人们不会使用它来垃圾邮件收件箱,但仍然可以将其用于需要它的人?
答案 0 :(得分:4)
询问注册的电子邮件地址而不是用户名?恶意用户不太可能知道它。
或者,在users表中添加TimeOfLastReset字段,并在发送电子邮件时更新此字段。如果CurrentTime-TimeOfLastReset太小,则不要发送。
答案 1 :(得分:1)
发送恢复电子邮件时,记录发生的时间。如果在预设的时间间隔内(15分钟?6小时?一天?)有任何进一步/太多的恢复请求,请打印一条消息,不要发送电子邮件。
答案 2 :(得分:0)
1)你必须知道你的电子邮件地址(而不仅仅是用户名)2)你可以在一个时间内只重置一次密码3)重置不能立即工作,你必须点击邮件中的链接
答案 3 :(得分:0)
不要认为它真的有被垃圾邮件发送者滥用的可能性。
对于垃圾邮件发送者,发送给用户的自动邮件(具有固定内容)是无用的。
但是,您可以做的是将会话ID添加到隐藏字段并在提交时进行检查。
或者向disply: none
添加一个隐藏的{name="message"
)字段,并为表单添加一个空值。并检查表单提交时是否仍为空。
让用户填写用户名和电子邮件地址并进行验证。
答案 4 :(得分:0)
如果您使用电子邮件作为登录用户名,那不应该是一个大问题,因为不是每个人都知道他们的电子邮件,并且为了让他们能够重置,他们的电子邮件必须匹配数据库。因此,只有在有人输入有效的电子邮件时才会发送和重置。