Maison  >  Article  >  développement back-end  >  APP接口安全问题

APP接口安全问题

WBOY
WBOYoriginal
2016-06-06 20:11:281291parcourir

如何保证安全性呢?
大家做APP接口是如何保证安全的呢
网上有几种方法
1.提交用户名和密码,但是很多接口是公开的
2.生产客户端和服务端一样的token , 如果是以时间的话,那么59分发送过去,服务端01分才接受到,那么就会数据错误
3.有什么方法解决呢 亲?

回复内容:

如何保证安全性呢?
大家做APP接口是如何保证安全的呢
网上有几种方法
1.提交用户名和密码,但是很多接口是公开的
2.生产客户端和服务端一样的token , 如果是以时间的话,那么59分发送过去,服务端01分才接受到,那么就会数据错误
3.有什么方法解决呢 亲?

首先,HTTPS能上就上,抗抓包能力强。
其次,客户端和服务器共享一套加密或者散列算法,参数中加入随机验证参数,服务器识别验证。
最后,可以在头中定义一些特殊的验证参数验证来源(当然也包括类似Token的东西)。

不过,这些都是在客户端不会被反编译的情况下才有效。

第一个问题,很多接口都是需要token或者说key来调用的,当然不排除一些开放的接口。你都有用户名和密码去调用了。还有什么安全性,顶多就是做一些防止暴力破解的机制
第二个问题,大部分通过时间戳加密的都会在传递参数的过程中把这些加密参数完全传递(当然还有一些私有的密钥,这个只参与加密过程,并不会传递,也不会放到外面让大家看到的。貌似之前有个微信二次开发的提供商,把大量的appsecrect暴露,引起了XXX),也就是说系统接到请求,以接到的请求数据进行加密对比。
第三个问题,如果你理解上面说的,应该就懂了。。
附一个简单的加密流程
第三方:appid,appsecrect[私密的]
app接口:appid,appsecrect
第三方调用app接口会传递:appid+时间戳+md5(appid+时间戳+appsecrect),注意这里的appsecrect在调用app时,并不会参与传递。
app接到请求:得到请求中的appid+时间戳,通过appid在存储中获取appsecrect 然后进行md5(appid+时间戳+appsecrect),通过这个串同第三方的md5加密后的串进行比对,如果不同则抛出错误

HTTPS + SSLPinning + Token

1.HTTPS
2.签名机制(Token)
3.接口内容加密(RES/AES)
4.oauth2

公钥传输私钥加密

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn