84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
1.接口使用一个key跟用户id md5加密。然后加密后的sign当参数传递(这样简单的加密方式安全吗?)。
2.那么问题来了,那如果用户的请求被抓到了,那不是别人也可以模拟请求。那如何知道请求是自己的APP发出的。如果只是请求头上带了app信息,那其他人也可以模拟。
3.因为接口从app发出,用户只有抓本地包才能看到这些信息。现在用户被别人请求包的情况容易出现吗?
强烈建议使用ssl来保护web api的通信安全,自己实现也未尝不可,但是肯定是没有ssl安全这是一定的。你这种做法会被中间人监听,sign直接会被拿到利用。
可以模拟请求。如果对方都反编译了你的app,鉴权过程都了解了,那么是绝对可以模拟的。
在没有ssl保护的情况下http都是明文传输,这种情况不是只有本地才能监听到。如果使用ssl保护通信安全的话,可以保证不被中间人监听。关于是否容易出现那就看你这个app的价值了。
推荐题主去了解下:中间人监听 重放攻击
之前我看人家是这么做的,有个专门的接口获取key,key的有效期是2天。之后调所有的接口,token直接用key加上对应参数格式,进行md5加密。也就是说参数是不带任何key的。一般来说,包会请求很多次,参数都会有变化,token就会不一样。而且,就算拿到key,不知道对方的组装方式也白搭。
可以试下Json Web Token
强烈建议使用ssl来保护web api的通信安全,自己实现也未尝不可,但是肯定是没有ssl安全这是一定的。你这种做法会被中间人监听,sign直接会被拿到利用。
可以模拟请求。如果对方都反编译了你的app,鉴权过程都了解了,那么是绝对可以模拟的。
在没有ssl保护的情况下http都是明文传输,这种情况不是只有本地才能监听到。如果使用ssl保护通信安全的话,可以保证不被中间人监听。关于是否容易出现那就看你这个app的价值了。
推荐题主去了解下:中间人监听 重放攻击
之前我看人家是这么做的,有个专门的接口获取key,key的有效期是2天。
之后调所有的接口,token直接用key加上对应参数格式,进行md5加密。也就是说参数是不带任何key的。
一般来说,包会请求很多次,参数都会有变化,token就会不一样。
而且,就算拿到key,不知道对方的组装方式也白搭。
可以试下Json Web Token