web api安全问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chen_jia_hao/article/details/81156574

思想如下:

这里写api主要考虑三个问题:调用者身份是否合法、数据是否被篡改过、重放攻击。

1、调用者身份是否合法?

写接口时,我们可以提供appid和appsecret用于校验调用方是否为合法的用户。

appid:用户唯一标识。(作为请求参数的一部分

appsecret:用户密钥。(注:这个不放到请求参数里

2、数据是否被篡改过?

这里通过签名的方式来实现。思路就是把 appid+appsecret+timestamp+params 通过信息摘要算法(md5、sha-1、sha-256之类)进行加密,然后会得到加密串,这个加密串就是我们所说的 “签名”(作为请求参数的一部分)。这个签名也会传到后台。只要原字符串发生了改变,那么它签名结果会改变。因此通过签名就可以判断保数据是否被改动过。

params :请求参数。

3、重放攻击?

这个主要通过timestamp(时间戳)来实现。调用方每次请求的时候,会带上一个timestamp(作为请求参数的一部分),到api提供方接受这个参数,然后再和当前timestamp进行比对,如果之差超过一定时间,就作为请求失效处理。具体时间看具体业务需求。

基本思路大概就是这样。如果appsecret没有被泄露和签名没有被暴力破解的话,安全性还是有很大的保障。如果安全性要求更高的话,可以对参数做加密,到后台再解密。

猜你喜欢

转载自blog.csdn.net/chen_jia_hao/article/details/81156574