在服务器端为android应用程序存储令牌的最佳实践是什么

在服务器端为android应用程序存储令牌的最佳实践是什么,android,web-services,web-applications,authorization,access-token,Android,Web Services,Web Applications,Authorization,Access Token,回答这个问题:,如果我使用私有设置在共享首选项中存储了身份验证令牌,服务器应该如何处理该令牌?就是 1令牌应有效多长时间 2如何确保其他设备未尝试使用此令牌 1令牌应有效多长时间 这可能取决于您实现的功能类型。有些应用每次都使用一次性令牌,另一些应用基于活动。例如,如果你在一段时间内没有使用它,它将过期,其他应用则永远不会过期,除非有人手动这样做。这可能取决于您的信息的敏感程度,显然,如果您正在管理银行/资金转账,安全性应该是您的优先事项,可能更短的有效期会有所帮助 2如何确保其他设备未尝试使用

回答这个问题:,如果我使用私有设置在共享首选项中存储了身份验证令牌,服务器应该如何处理该令牌?就是

1令牌应有效多长时间

2如何确保其他设备未尝试使用此令牌

1令牌应有效多长时间

这可能取决于您实现的功能类型。有些应用每次都使用一次性令牌,另一些应用基于活动。例如,如果你在一段时间内没有使用它,它将过期,其他应用则永远不会过期,除非有人手动这样做。这可能取决于您的信息的敏感程度,显然,如果您正在管理银行/资金转账,安全性应该是您的优先事项,可能更短的有效期会有所帮助

2如何确保其他设备未尝试使用此令牌

这也可能取决于您自己的服务器实现,即您选择的实现方式。请记住,令牌是由远程服务器生成的随机字符串,您需要保留某种数据库来存储发出的令牌到经过身份验证的用户的映射。当您想使令牌过期时,只需将其从数据库中删除,这样您就可以使数据库保持最新,同时还可以确保不再使用旧令牌。只要攻击者无法创建有效的令牌,该令牌就安全而言是可以使用的,该令牌是一个已验证的令牌,存储在您的数据库中,并且是当前的,即未过期的令牌

通常,至少16字节长的令牌被认为是足够安全的,可以用作身份验证系统,该令牌由一个健壮的加密系统java.security.SecureRandom、/dev/uradom等生成

为了避免其他用户伪造来自其他用户的令牌,此身份验证令牌通常以以下方式生成:

在服务器端生成一个密钥,我们称之为至少128位的序列,由一个健壮的加密系统java.security.SecureRandom、/dev/urandom等生成。 令牌应该包含它被发出的时间T、用户名N和完整性检查(根据N和T计算的校验和),并键入S。 由于服务器是唯一知道S的服务器,它可以验证请求的令牌,并确定它是真的还是伪造的,因为它也基于用户名。 我认为这些链接可以帮助您:

1令牌应有效多长时间

这可能取决于您实现的功能类型。有些应用每次都使用一次性令牌,另一些应用基于活动。例如,如果你在一段时间内没有使用它,它将过期,其他应用则永远不会过期,除非有人手动这样做。这可能取决于您的信息的敏感程度,显然,如果您正在管理银行/资金转账,安全性应该是您的优先事项,可能更短的有效期会有所帮助

2如何确保其他设备未尝试使用此令牌

这也可能取决于您自己的服务器实现,即您选择的实现方式。请记住,令牌是由远程服务器生成的随机字符串,您需要保留某种数据库来存储发出的令牌到经过身份验证的用户的映射。当您想使令牌过期时,只需将其从数据库中删除,这样您就可以使数据库保持最新,同时还可以确保不再使用旧令牌。只要攻击者无法创建有效的令牌,该令牌就安全而言是可以使用的,该令牌是一个已验证的令牌,存储在您的数据库中,并且是当前的,即未过期的令牌

通常,至少16字节长的令牌被认为是足够安全的,可以用作身份验证系统,该令牌由一个健壮的加密系统java.security.SecureRandom、/dev/uradom等生成

为了避免其他用户伪造来自其他用户的令牌,此身份验证令牌通常以以下方式生成:

在服务器端生成一个密钥,我们称之为至少128位的序列,由一个健壮的加密系统java.security.SecureRandom、/dev/urandom等生成。 令牌应该包含它被发出的时间T、用户名N和完整性检查(根据N和T计算的校验和),并键入S。 由于服务器是唯一知道S的服务器,它可以验证请求的令牌,并确定它是真的还是伪造的,因为它也基于用户名。 我认为这些链接可以帮助您:


当向服务器请求生成的令牌时,是否应该发送任何信息,如UUID或
MAC地址?此应用程序需要与Twitter类似的安全级别,与银行业务无关。一旦服务器为特定客户端颁发了令牌,客户端就必须向服务器提供该令牌,并要求服务器执行某些操作。如果您只是想使用该服务器颁发令牌并检查令牌是否仍然有效,即不是服务器执行操作,只是在需要身份验证的操作之前,向服务器发送一个请求,显示用户的当前令牌。如果服务器回答OK,则让用户执行该操作,否则可能会将他们重定向到身份验证屏幕,告诉他们会话已过期。当请求服务器生成令牌时,是否有任何应发送的信息,如UUID或MAC地址?此应用程序需要与Twitter类似的安全级别,与银行业务无关。一旦服务器为特定客户端颁发了令牌,客户端就必须向服务器提供该令牌,并要求服务器执行某些操作。如果您只是想使用该服务器颁发令牌并检查令牌是否仍然有效,即不是服务器执行操作,只是在需要身份验证的操作之前,向服务器发送一个请求,显示用户的当前令牌。如果服务器回答“确定”,则让用户执行该操作,否则可能会将他们重定向到身份验证屏幕,告诉他们会话已过期。如果您正在寻找更安全的密码存储方式…如果您正在寻找更安全的密码存储方式,则可以阅读此内容…您可以阅读此内容