【发布时间】:2013-11-25 07:20:03
【问题描述】:
我有一个场景,我向随机电子邮件 ID(可能是注册用户的电子邮件 ID 或未注册用户)发送邀请。现在发送的邮件带有一个链接,该链接会将他们定向到应用程序和特定页面。在发送邀请之前,我必须为每个邮件 ID 分配一个令牌并为其设置过期时间。现在我的疑问是我应该将每个电子邮件 ID 的令牌保存在数据库中吗?如果没有,还有哪些其他选择?
【问题讨论】:
标签: security asp.net-mvc-4 c#-4.0 token
我有一个场景,我向随机电子邮件 ID(可能是注册用户的电子邮件 ID 或未注册用户)发送邀请。现在发送的邮件带有一个链接,该链接会将他们定向到应用程序和特定页面。在发送邀请之前,我必须为每个邮件 ID 分配一个令牌并为其设置过期时间。现在我的疑问是我应该将每个电子邮件 ID 的令牌保存在数据库中吗?如果没有,还有哪些其他选择?
【问题讨论】:
标签: security asp.net-mvc-4 c#-4.0 token
选项1:将令牌保存在数据库中;不时清除那些超时的,这样你就不会填满你的数据库。
选项 2:将数据(包括创建时间)加密到令牌中。
(选项 3:不要向未注册您服务的随机人发送垃圾邮件。;))
【讨论】:
purge those that time-out every now and then so you don't stuff your DB.这一行
DELETE FROM tokens WHERE created_at > DATEADD(minute, -30, GETDATE()) 或类似的东西,取决于方言,每次你做任何处理时运行,在created_at 上有一个索引,应该不会占用任何时间。或者每 15 分钟定期一次,或者任何你喜欢的时间。