我在Android上创建一个应用程序,允许用户在获得名称和密码后,通过网络api休息修改您的个人资料。
我建立了一个系统,一旦经过身份验证,就会返回一个唯一的安全令牌,用于验证用户执行操作(更新配置文件)。
我第一次使用了这样的URL,用户可以访问(登录):
webserver.com/?login&user=michael&password=7c4a8d09ca3762af61e59520943dc26494f8941b
然后,如果数据正确,其余的api会向android应用程序返回一个唯一的令牌。 Android应用程序将此唯一令牌存储为make,直到用户不关闭会话,更新他的个人资料。
我用来更新这样的网址:
webserver.com/?update&token=ee977806d7286510da8b9a7492ba58e2484c0ecc&newname=mathews
然后,当用户关闭会话时(在Android应用程序内),我通过另一个URL从Web服务器中删除令牌...
这是一个很好的系统吗?这是我的标记“安全”吗?
我将这些url(没有参数值)存储在我的Android应用程序的常量中......这样安全吗?我可以做其他事情吗?
答案 0 :(得分:1)
这个问题对如何使您的通信更安全有一些非常有用的答案: How to send password securely over HTTP?
答案 1 :(得分:1)
不,这不安全。永远不要在URL中填充凭据,因为URL往往会记录在许多不同的地方,从而将凭证暴露给第三方。使用HTTP正文来做这类事情。
始终使用加密的SSL / TLS传输凭据。或者使用像OAuth1这样的加密系统来避免以明文形式发送凭据。 OAuth1定义了一种用于证明凭证所有权而无需实际发送凭证的方案。
使用令牌的HTTP Authorization标头。搜索“http授权承载令牌”。