我正在为android开发一个应用程序(作为团队的一部分),它与服务器(asp.net web服务)交互,以便在客户端同步和更新信息。
为防止攻击服务器,我们使用SSL连接,并使用soap header message验证用户包含用户名和密码。
这是同步的场景:
网络服务检查:
设备将响应作为xml文件
问题:
因为这种情况我们必须为用户的设备提供身份验证信息,以便将来可以与服务器进行交互,而且我们也不希望从用户那里获取用户名和密码等任何信息(出于用户体验目的!)
所以我们在服务器中构建一个Web Handler Captcha,当用户是新用户时,我们会向他们发送一个由他们的设备代码生成的验证码图像(它是由设备生成的,如https://www.server.com?appid=00000000-0000-0000-0000-000000000000),以及当用户发送时正确的验证码到服务器我们将新用户添加到我们的数据库(自动用户名和随机密码)并保存到Android的客户经理以备将来使用
您认为这是一种认证和安全的好方法吗? 感谢您的提示
答案 0 :(得分:0)
获取sessionId的Https和方法对大多数应用来说都足够安全了,无论如何我的意见:
除非你在散列变量中包含一个秘密,否则中间的人将会出现#34;可以更改参数并伪造有效的哈希。
我会推荐一种注册方法。它会将设备信息作为参数,如果你愿意,也可以使用验证码。
它将返回deviceId和deviceSecret。不得再次传输deviceSecret,只是用作哈希的一部分。
还要考虑使用计数器而不是时间。它可以帮助抵御重播攻击,整体上更容易。