安全地设计 "trial before signup" 系统
Designing a "trial before signup" system securely
如何安全地实施 "trial before signup" 用户系统?
目前我的想法是:
- 用户点击"Try product"
- 控制器创建新的
user
- 套
is_trial = true
- 套
trial_id = UUID()
- 设置session/cookie
trial_id = user.trial_id
- 未来的访问会检查 session/cookie 是否有
trial_id
,如果存在则加载用户,否则会重定向到 signup/start-trial 页面。
我认为这可以正常运行,除非两个人生成相同的 UUID,但我担心用户可以编辑他们的 cookie trial_id
并欺骗他们进入其他人的(不可否认也是试用版)帐户。
我知道有人猜测别人的 UUID 的可能性很小,但这并非不可能。
这些系统通常是这样设计的吗?我怎样才能增加安全性?
我相信概述的方法以及添加诸如 JTW 之类的东西来签名(以防止篡改)或签名和加密 cookie 是正确的。
如何安全地实施 "trial before signup" 用户系统?
目前我的想法是:
- 用户点击"Try product"
- 控制器创建新的
user
- 套
is_trial = true
- 套
trial_id = UUID()
- 套
- 设置session/cookie
trial_id = user.trial_id
- 控制器创建新的
- 未来的访问会检查 session/cookie 是否有
trial_id
,如果存在则加载用户,否则会重定向到 signup/start-trial 页面。
我认为这可以正常运行,除非两个人生成相同的 UUID,但我担心用户可以编辑他们的 cookie trial_id
并欺骗他们进入其他人的(不可否认也是试用版)帐户。
我知道有人猜测别人的 UUID 的可能性很小,但这并非不可能。
这些系统通常是这样设计的吗?我怎样才能增加安全性?
我相信概述的方法以及添加诸如 JTW 之类的东西来签名(以防止篡改)或签名和加密 cookie 是正确的。