微信说 Appsecret 需要放在 App 云端服务器,由云端中转接口调用请求才安全,具体怎样操作呢

2017-06-01 13:15:48 +08:00
 xiaoc19

1、Appsecret 是应用接口使用密钥,泄漏后将可能导致应用数据泄漏、应用的用户数据泄漏等高风险后果;存储在客户端,极有可能被恶意窃取(如反编译获取 Appsecret ); 2、access_token 为用户授权第三方应用发起接口调用的凭证(相当于用户登录态),存储在客户端,可能出现恶意获取 access_token 后导致的用户数据泄漏、用户微信相关接口功能被恶意发起等行为; 3、refresh_token 为用户授权第三方应用的长效凭证,仅用于刷新 access_token,但泄漏后相当于 access_token 泄漏,风险同上。

建议将 Appsecret、用户数据(如 access_token )放在 App 云端服务器,由云端中转接口调用请求。

微信给出了这样的建议,网上很多资料都是直接放在 APP 里这种不安全的做法, 请问大家都是如何安全存储的,由云端中转接口调用请求又需要怎样的使用方式呢?

5292 次点击
所在节点    程序员
6 条回复
mytsing520
2017-06-01 13:20:41 +08:00
APP 发起请求到服务器,服务器和微信服务器之间用 API 调用,返回结果到 APP,而不是 APP 直接向微信服务器调用
itroad
2017-06-01 14:15:53 +08:00
其实说白了,就是微信的接口请求数据交给你的服务端,再由服务端接口给 app 客户端,这样保证了秘钥不暴露.而客户端则是非常不安全的,不应客户端直接发起向微信服务调用.
Returnear
2017-06-01 14:30:33 +08:00
这么说吧,你爸给你和你的十个兄弟发生活费。
第一种是你爸用自己的工资卡给你们的账户转账。
第二种是你爸把自己工资卡复制了十份,然后把密码也告诉你们,你们自己取。
你说哪种方式安全
xiaoc19
2017-06-01 14:53:26 +08:00
@mytsing520
@itroad
@Returnear

你们说的这些我都懂,微信说的很明白了,但是到具体,
微信能使用 code 获取 access_token,
QQ 登录是不是不能这样做?

成熟的 APP 都是怎么做的
caidaofff
2017-06-01 16:44:37 +08:00
public function getOpenId(){
//$url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code ';
$code =$_GET['code'];
if(empty($code)){
die;
}
$appId = 'wx1234123412341234';
$secret = '3434212331234123235345';
$s = 'CODE';
$result = file_get_contents('https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appId.'&secret='.$secret.'&code='.$code.'&grant_type=authorization_code');
这个扔后端,前端 js 将 code 送进来,返回的就是 access_token
caidaofff
2017-06-01 16:47:15 +08:00
其实一楼已经说的很清楚了,我这个是具体写法,随手写的,错误自检哈

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

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

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

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

© 2021 V2EX