首页 > 如何保护手机客户端与服务端交互的url

如何保护手机客户端与服务端交互的url

手机app被反编译后(或直接抓包),app与服务器端交互的url就被暴露了,别人也就可以使用这些url做任何事情了。
如何才能保护这些url不被其他人使用呢?

注:这些url是不需要用户登录的,需要用户登录的比较好处理


人家不反编译,用抓包的方式也能看到。我们日常做app的接口,访问都是需要token来认证的,或者用其他的验证协议。你可以看看许多云平台的API认证方式,人家都是暴露出来的。


oauth2.0 认证可以解决你的问题,所有与服务端交互的app都要传token


数字签名可以保护你 auth相对而言有点复杂对于一般应用而言,可以做一个类似的restfull api接口,并附加数字签名,保证每条请求的签名唯一性就可以了


作为一个游戏开发者,我们是在 http 上自己再做了一层协议封装,外部看来都是在访问一个 url,其实 body 里加密的内容中包含了真实的 url,服务器会根据真实 url 路由到实际的处理函数。

游戏外挂比较多且讨厌,才不得已用此策略。如果只是一个 app,感觉大可不必如此担心 url 暴露,想想那么多网站,url 都是大大方方的写在浏览器地址栏里的,是否安全是靠业务的健壮性保证的,而不是隐藏 url。

Update:

如果要求 url 可以被自己的设备访问但是不要随便被其他人公开访问,那么可能不可避免的需要引入“设备登录”概念了,跟游戏有些类似了。

具体来说就是 app 第一次启动时会生成一个全局唯一 UUID,以此作为用户名到服务器登录,登录密钥是写死在程序里的,当然要尽量保密不能被截获、解密或猜出来。设备必须先用这个 UUID 登录并获得某种 token 之后才能访问服务器资源,也就是说服务器端根本不存在任何可以随意访问的 url,一切都需要在某种 token 的保护之下才行。

【热门文章】
【热门文章】