怎样校准电脑时间客户端时间?

服务端如何验证app发来的请求来自官方客户端而非第三方?
首先假设服务端有个接口是可以让用户领取现金红包的。当然客户端访问这个接口的参数需要各种加密和签名等基本保护,所有的加密都是在.so中实现的。现假设破解者查询到这个接口的调用过程,并在他自己的程序中用自己的账号仿造了一模一样的调用(直接使用官方的.so),那么他就能无限制的领取红包。我的问题是有没有什么技术手段来使得服务端知道某次调用是否来自官方客户端。目前的方案是:1.在so中验证app签名的hashcode值,如果不是官方签名打包的则退出。(这个太容易破解了,只需要动态调试修改判断语句的寄存器值或是nop掉验证的函数)2.在so对服务端接口参数加密加签的时候带上app签名的hashcode值。(这个也很容易破解,只需要在调试原程序的时候查看寄存器值记住这个hashcode值,第三方调用的时候把计算出来的hashcode值的寄存器的值改成原hashcode值就行了)3.对so加壳反调试(我始终相信这些措施还是能被破解的)所以我的问题是有没有什么靠纯算法的方式实现破解者无法冒充官方调用?
按投票排序
不得不说,校验来源是极为困难的,特别是如今客户端软件都是便于反编译的,而通信协议基本都基于应用层的http(s);所以,设计WebAPI/WebService等开放接口的时候,应该从服务器端控制各个API的权限和行为。而不是不做控制,仅依靠客户端的逻辑去做处理,那样,被冒充客户端之后是会有问题的。具体的,除了上面有人提到的某种逻辑限制领取数量频率等,还可以:1:有一个登录API用来验证用户合法性,并采用诸如返回一个key,供后续其他函数验证用户合法性。2:被调用的API不仅仅检查用户是否登录,还需要根据用户的权限返回数据,或拒绝访问。3:之前提到的调用频率等限制。4:其他https等最终的目的在于,不论客户端是否合法,但保证业务流程合法。这样一来,也会还会催生出一些第三方客户端来满足不同需求层次的用户,而只你也不必担心第三方客户端会对你api做什么坏事。
在android这种开放环境下,如果认为别人能任意反编译代码的话是无法通过算法保证不可模拟的。题主描述的方案安全性已经比较高,像一般app用的双向https或者非对称加密会更容易模拟,分分钟导出你的证书,反编译出私钥。这种问题一般并非通过算法来解决,而是通过服务端的策略去限制,比如验证手机并限制每个手机号领取个数,每个账号领取次数,是否满足领取条件的验证放在服务端等等。所以,一般不是要做到无法模拟客户端,而是要在服务端做到你即使模拟客户端也没什么用。
完全无法破解是不太可能的。可以考虑采用预共享密钥 + 算法混淆 + 时间戳。特别是时间戳,用伪随机算法加密预共享密钥然后打上时间戳,额外的时间戳明文传输,限制有效期。并app签名验证结合起来。我估计够破解者喝一壶的。
美团的哥们说他们要用https开启双向验证。不过这样的话,速度估计慢的一笔,权衡一下吧。
你为啥要验证来源。限制每个账号的领取次数不就行了?
服务端和客户端是解耦的,服务端天生不信任任何客户端的消息,必须进行逻辑校验。这样不就可以避免错误的客户端指令执行了?
问题应该是为什么可以无限制领取红包,正常的后端是不依赖前端的,或者说是不信赖前端的。那就不存在这个问题了。如果真的要验证客户端,简单点可以设置密码,密码对当然时间加密作为密文,然后参数带上时间戳,服务端一样操作验证,同时规定时间戳跟服务器当前时间差有个限制范围,以免这个密文被重复使用。最好用https。
已有帐号?
无法登录?
社交帐号登录请问怎样校准客户端时间_百度知道
请问怎样校准客户端时间
提问者采纳
提问者评价
太给力了,你的回答完美地解决了我的问题,非常感谢!
其他类似问题
为您推荐:
客户端的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁微信看不了视频,让校准客户端时间。怎么搞啊。谢谢大家了。_百度知道
微信看不了视频,让校准客户端时间。怎么搞啊。谢谢大家了。
/zhidao/pic/item/0ff41bd5ad6eddc44c1c35ad3fdbb6fd://f.hiphotos.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="/zhidao/wh%3D450%2C600/sign=02f65d42be99a8abd5ad6eddc44c1c35ad3fdbb6fd://f.baidu.baidu.baidu.jpg" esrc="http&<a href="/zhidao/wh%3D600%2C800/sign=9a085f94a1/0ff41bd5ad6eddc44c1c35ad3fdbb6fd.hiphotos://f
我有更好的答案
客户端的事件和系统的不一样了
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁支付宝客户端证书有误请校准时间是什么意思_百度知道
支付宝客户端证书有误请校准时间是什么意思
提问者采纳
时间校正就可以了,打开看看核对下年份有没出错,常见的就是忽略了年份时间:点击屏幕下方的时间。解决方法,出现这种情况
其他类似问题
为您推荐:
支付宝的相关知识
其他1条回答
支付宝证书有没有过期?
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如何校正微信客户端时间_百度知道
如何校正微信客户端时间
我有更好的答案
因为所有显示时间的都以手机本身时间为准的,把你手机的时间调对了那是你手机时间设置问题,并不是对方的时间
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 微信客户端时间不正确 的文章

 

随机推荐