崔哲
崔哲
  • 发布:2017-06-13 13:12
  • 更新:2021-02-24 21:39
  • 阅读:3688

客户端破解以后,我们怎么解决,赤裸裸的数据交互解决

分类:HBuilder

环境前提:
1.客户端已被破解可以查看到数据交互的api接口
2.账号密码没有存在本地手机存储内
3.登录密码没有第二个人知道
4.服务器登录有Oauth2.0进行授权登录。没有的需要搭建一个授权服务器。
5.手机已经ROOT,可以获得本机设备id和互联网唯一标识id,还有token。
需要解决的问题集合:
1.担心客户端破解以后所有的api接口都暴露出来有攻击的威胁。
2.账号密码存在本地,被root过手机的恶意程序获得账号密码。
3.获得token以后伪造设备id等唯一标识符操作数据,存在威胁。
4.自动登录的问题怎么解决。
安全解决原理:
解决第1个问题:
第一次登录成功账号,则获得一个授权服务器分配的token,以后所有的数据操作都是用token进行操作。
账号密码没有存在本地,则跟服务通讯的时候需要有一个token(令牌)。
token令牌的生成:则需要登录成功以后获得本地手机的设备ID和互联网唯一标识id来绑定这个token只能在这个手机上面进行操作。如果token被坏人截获,在使用token获取api接口数据的时候则自动验证此token失效,因为token匹配手机的设备ID和互联网唯一标识id变动了。token失效以后需要重新登录才可以获得正确的token,因为坏人不知道账号密码所以没有办法登录,手机端被破解以后,账号密码也没有保存在本地所以也不知道账号密码,有小伙伴就问了第一次登录的时候被截获怎么办,那答案就是登录授权服务器的时候用的是https(ssl)加密协议登录的,所以这个破解的几率还是有一点难度。
注解:客户端被破解出来所有的传递的字段都看到了,api接口的地址也知道了,就会有坏人恶意操作,通过这个token就可以解决第一个问题。
解决第2个问题:
因为是使用的token操作,所有本地不存账号密码这些机密数据,及时手机被root了也获得不了账号密码。只能获得token数据。这个token是唯一的只能在本机使用,如果伪造这个本机的设备id和互联网id,则这个账号可以在别的设备上登录,前提是别的设备的编号要可以伪造。
解决第3个问题:
退3步说话,如果token被别人获得了,设备id被别人获得了,那别人就可以伪造id和使用token来操作数据了,是的,这怎么办?你获取的数据基本都是这个token用户的数据,其他的用户你威胁不了,至少区域给你限制住了,ok,继续看下一步,如果你恶意刷新获取服务器公共资源数据,那管理员直接在授权服务器授权每个用户获取公共资源每天的次数限制一下即可,你恶意获取次数是有限的,如果获得这个用户的token修改密码怎么办,好办,在更改密码的时候验证手机号短信即可,验证成功则可以修改密码,验证不成功则不能修改密码。涉及到资金交易的,只需要设置每笔资金交易有交易密码就OK,用token交易的时候没有交易密码也是白扯。
解决第4个问题:
直接传递token去服务器验证即可,验证通过就登录成功,验证不通过就显示登录账户密码进行登录。
收集各位小宇宙的猜想,看看还有什么攻击我没想到,还有什么问题我没解决,大家一起来解决,一起来猜想,多多交流!

8 关注 分享
向大海 陈可乐 小明子 xymst DCloud_heavensoft 1***@qq.com R***@qq.com w***@gcsoft.com

要回复文章请先登录注册

崔哲

崔哲 (作者)

这个帖子有点远啊,
2021-02-24 21:39
老哥教教我

老哥教教我

换手机登录怎么办
2018-02-20 18:47
秋天无风

秋天无风

这么好的文章,怎么就没人顶。
解决了怎么自动登录,怎么设计安全接口等疑问。
2018-01-28 23:33