申请了某些 api 服务,怎么隐藏自己的 key 啊

2016-05-17 20:27:42 +08:00
 weizhixiang
请求服务要带上 key ,怎么不让别人知道,Android开发,太容易反编译了
4865 次点击
所在节点    问与答
25 条回复
msg7086
2016-05-17 20:29:25 +08:00
用 https 可以防止请求被窥探。
pheyer
2016-05-17 20:55:10 +08:00
@msg7086 https 也可以抓包的
Slienc7
2016-05-17 20:58:39 +08:00
这类第三方的、需要通过 key 访问的服务,由服务器统一处理请求,然后转给客户端。
weizhixiang
2016-05-17 21:02:13 +08:00
@Slienc7 还要搞服务器啊
luili
2016-05-17 21:30:30 +08:00
传给自己的服务端,由服务端转向第三方
audi
2016-05-17 21:49:17 +08:00
@msg7086 太傻太天真
qqmishi
2016-05-17 22:22:50 +08:00
加个中转,这样只能抓到中转服务器的数据包,没有 key
tolbkni
2016-05-17 22:35:15 +08:00
nginx + lua ,转发到 API 服务
Comdex
2016-05-17 22:39:51 +08:00
通联股票数据,楼主我想问调用的 url 和端口是啥,是所有开发者都一样么?
66CCFF
2016-05-18 01:22:52 +08:00
@pheyer 来教我下抓下来怎么解出 key
azuis
2016-05-18 01:36:55 +08:00
@66CCFF 先装一个自签的根证书在手机上。然后用这个根证书去签那个 api 域名的 SSL 证书。再架个代理用你自签的证书去替换原有证书就可以了。你自己有 key 所以可以直接解出所有内容
msg7086
2016-05-18 01:44:04 +08:00
@audi 请问你想说什么
mornlight
2016-05-18 01:56:28 +08:00
如果是不可公开的 key 必须走自己服务端,没别的路子。
yyfearth
2016-05-18 07:10:33 +08:00
@msg7086 我觉得他只是想说 https 照样可以抓包 不能完全不透露 Key 的 就像 @azuis 和 @pheyer 说的那样

@66CCFF 如果是网络上的中间人攻击者 如果你用 https 来保证 key 不泄漏
那么有几种情况:
1 如果你用的不是可信机构签发的证书 或者你不在客户端校验证书 中间人完全可以伪造证书来解密内容
2 就算你用了可信证书 如果你不在客户端校验证书 仍然没办法保证不被盗取:
因为就像 11L 所说 开发者经常搭建本地代理然后信任自签证书来绕过 这样就可以得到加密内容了
如果说网上传的 key 是处理过的 不是原始 key 那么再退一步来讲 因为客户端运行在别人手中 你再怎么样藏起来 总有办法挖出来的

所以 如果通信必须要 key 而且 key 不能公开 那么只有搭建自己的服务区来解决了
Sharuru
2016-05-18 08:22:47 +08:00
然后问题就变成了如何保证客户端和自己的服务端通信的时候保证内容不会泄漏了 233
weizhixiang
2016-05-18 08:25:06 +08:00
@Comdex 我先申请了个个人的,给了个 token ,免费用一年
weizhixiang
2016-05-18 08:27:25 +08:00
@Sharuru 内容泄露,关系不大,隔段时间换 key ,只要用我的客户端就可以了
wesley
2016-05-18 09:47:11 +08:00
不在网络中传输 key, 只传输 key 的 hash 值, 然后使用 key 作为密钥给传输数据签名:
head:
KeyHash: hash(key)
Signature: hash(body_content+key)
body:
body_content
msg7086
2016-05-18 09:53:23 +08:00
@yyfearth 于是我回头看了一眼,发现好像和我第一眼看到的帖子不一样了,不知道是看帖的时候还在睡眠状态,还是我回帖完了以后楼主又改了帖子。
Comdex
2016-05-18 10:03:21 +08:00
@weizhixiang 我也是,但是不太明白调用的 url 及端口是 example 的那个么?只知道 api 的接口,如 /v2/api/getStock ,那么完整的 url 是?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/279350

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX