web传输安全

手机客户端和服务器通信时如何安全高效的进行身份验证?

对于一个已经登陆的用户来说,服务器如何进行身份识别呢?不考虑存在session或者cookie的情况。如果客户端每次请求都发送用户名密码,可能不太安全,同时服务器也必须每次都对其进行验证。 
或者用户登陆后服务器生成一个token发给客户端,客户端每次请求携带用户id和token,服务器检验id和token是否对应从而进行身份认证,但
这样似乎又不安全,只要知道id和token后就可以和服务器进行通信了。 
还想到一点,仿照oauth原理,在用户注册时生成(user_token, user_secret),用户登陆时生成(user_login_token, user_login_secret),发送请求时携带两个token和用两个secret的签名,服务器验证此签名进行身份验证。因为secret是保存在客户端的,不会在网络传输,要想伪造必须同时拿到两个secret和两个token才行,而且login_token和login_secret有过期限制,一定程度上保证安全性

评论 (0) •   •  链接 •  2012-03-02 
7个答案

简单说下google的验证方式

1.接口分级
不同的接口采用不同级别的安全认证方式,例如访问缩略图,遍历数据,下载普通app,下载付费app,认证逐渐加强,但随时可以对任意接口提高认证强度

2.数据请求类似oauth
通过用户名和密码和其他参数(平台,安全级别)通过login获得token,具体接口在通过token(用在Cookie中),并且对不同接口采用android或者androidsecure请求(http,https)下一步的数据。

3.对交互数据进行encode
gzip,protobuf,Base64-like encoding,等

4.服务端访问控制。
对一个token的访问频率进行验证,实时关闭或者暂停有问题账户。

评论 (0) •  链接 • 2012-03-02

我估计你这个机制就是android客户端基于LAMP或者LNMP机制实现用户登录系统的
因为没有浏览器就不可能依赖cookie来保存sessionid

以前是通过发送一个随机的sessionid去给客户端,
现在你可以模仿这个过程生成一个自己设定的sessionid给客户端(当然你需要搞一个自己生成sessionid的方法)

然后发送给客户端保存并请求时携带,
服务端利用MC或者Redis来保存sessionid(可以以这个为键存储UID)
这样客户端访问时带上模拟的seesionid请求,
服务端通过读取缓存信息来判断用户是否登录,
这样基本上就可以模拟基于浏览器的登录注册过程了

评论 (0) •  链接 • 2012-03-03

在Web/HTTP领域,Session/Cookie就是最常用的身份管理手段,其次是 HTTP Auth,再其次是有用户证书的HTTPS

评论 (0) •  链接 • 2012-03-03

如果如崔苔吾所说的情况,因为是手机端才不考虑session,那就是误区了。不管是android还是iphone,都可以实现session,只需要利用apache的开源项目,Apache HttpClient,客户端就会自动维护与服务器之间的登陆状态,所以,比如你用的J2ee,加个filter就可以判断用户登陆状态了。

评论 (0) •  链接 • 2012-03-06

将你的tocken和手机的imie号或者mac号进行绑定。

评论 (0) •  链接 • 2012-08-17

安卓session,是可以用的,session是保存在服务端的,客户端只要知道phpsessionid就行了,将知道的sessionid通过header()进行很传输到浏览器,php就会想正常那样就会去接收使用这个sessionid相对应保存的配置信息

评论 (0) •  链接 • 2012-10-03

要安全性的话最可靠的就是使用HTTPS。OAuth2.0之类的协议,现在也是依靠HTTPS来维持通信保密性。通过HTTPS发送的数据包理论上不存在中途被截获、破解的可能性。
所以只要使用Token,再加上HTTPS就行了。

使用HTTPS的时候,最好验证对方服务器的证书的确是自己的服务器的证书,防止DNS劫持之类的攻击手段。

评论 (0) •  链接 • 2012-10-03
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值