use*_*508 1 android authorization web-services web-applications access-token
回答这个问题:在Android应用程序中存储用户设置的最合适的方式是什么,如果我在共享首选项中存储身份验证令牌,使用私有设置,服务器应该如何处理这个令牌?那是,
(1)token的有效期应该是多长?
(2) 如何确保其他设备不会尝试使用此令牌?
(1)token的有效期应该是多长?
这可能取决于您要实现什么类型的功能。一些应用程序每次都使用一次性令牌,另一些应用程序是基于活动的(例如,如果您在一段时间内不使用它,它就会过期),其他应用程序只是永远不会过期,除非有人手动操作(这Twitter就是这种情况)。这可能取决于您的信息的敏感程度,显然,如果您正在管理银行/汇款,安全性应该是您的首要任务,并且较短的有效期可能会有所帮助。
(2) 如何确保其他设备不会尝试使用此令牌?
这也可能取决于您自己的服务器实现,即您选择实现它的方式。请记住,令牌是由远程服务器生成的随机字符串,您需要保留某种数据库来存储发出的令牌到经过身份验证的用户的映射。当您想要使令牌过期时,只需将其从数据库中删除即可,这样您就可以使数据库保持最新状态,同时您还可以确保不再使用旧令牌。只要攻击者无法创建有效令牌,该令牌就可以(就安全性而言),该令牌是已发出的令牌,存储在您的数据库中并且是最新的(即未过期)。
通常,长度至少为 16 字节且使用强大的加密系统(java.security.SecureRandom、/dev/urandom等)生成的令牌被认为足够安全,可以用作身份验证系统。
为了避免其他用户伪造其他用户的令牌,该身份验证令牌通常是这样生成的:
S生成的至少 128 位的序列。java.security.SecureRandom/dev/urandomT)、用户名 ( ) 以及通过 和 计算的N完整性检查(有点像校验N和) T,并使用 进行加密S。S,因此它可以验证所请求的令牌并确定它是真实的还是伪造的(因为它也基于用户名)。我认为这些链接可以帮助您:
| 归档时间: |
|
| 查看次数: |
1589 次 |
| 最近记录: |