如何保护手机客户端与服务端交互的url
手机app被反编译后(或直接抓包),app与服务器端交互的url就被暴露了,别人也就可以使用这些url做任何事情了。
如何才能保护这些url不被其他人使用呢?
注:这些url是不需要用户登录的,需要用户登录的比较好处理
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
手机app被反编译后(或直接抓包),app与服务器端交互的url就被暴露了,别人也就可以使用这些url做任何事情了。
如何才能保护这些url不被其他人使用呢?
注:这些url是不需要用户登录的,需要用户登录的比较好处理
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
作为一个游戏开发者,我们是在 http 上自己再做了一层协议封装,外部看来都是在访问一个 url,其实 body 里加密的内容中包含了真实的 url,服务器会根据真实 url 路由到实际的处理函数。
游戏外挂比较多且讨厌,才不得已用此策略。如果只是一个 app,感觉大可不必如此担心 url 暴露,想想那么多网站,url 都是大大方方的写在浏览器地址栏里的,是否安全是靠业务的健壮性保证的,而不是隐藏 url。
Update:
如果要求 url 可以被自己的设备访问但是不要随便被其他人公开访问,那么可能不可避免的需要引入“设备登录”概念了,跟游戏有些类似了。
具体来说就是 app 第一次启动时会生成一个全局唯一 UUID,以此作为用户名到服务器登录,登录密钥是写死在程序里的,当然要尽量保密不能被截获、解密或猜出来。设备必须先用这个 UUID 登录并获得某种 token 之后才能访问服务器资源,也就是说服务器端根本不存在任何可以随意访问的 url,一切都需要在某种 token 的保护之下才行。
oauth2.0 认证可以解决你的问题,所有与服务端交互的app都要传token
人家不反编译,用抓包的方式也能看到。我们日常做app的接口,访问都是需要token来认证的,或者用其他的验证协议。你可以看看许多云平台的API认证方式,人家都是暴露出来的。
数字签名可以保护你 auth相对而言有点复杂对于一般应用而言,可以做一个类似的restfull api接口,并附加数字签名,保证每条请求的签名唯一性就可以了