美文网首页
API认证方式

API认证方式

作者: 番薯IT | 来源:发表于2017-08-13 15:07 被阅读42次

    前言

    APP和后端进行交互的时候,我们都是需要考虑数据的安全性。APP想后端发起一个请求(http/https),如果别人知道这个请求的url,那如果我直接放在浏览器上请求,能不能获取到数据?

    在这里我们就需要对api进行一个认证。不是什么地方的请求的都是能请求到数据的,我们只让符合我们规则的请求获取到相应的数据。

    当然这种认证方式有很多,有非常简单的,也有非常复杂的。这里介绍一种相对简单并且轻量的API认证方式。

    认证方式

    服务端生成 App-KeyApp-Secret,并给到前端。

    前端每次发起请求都需要在请求头中带以下四个HTTP Request Header,具体如下:

    名称 类型 说明
    App-Key string 应用密钥
    App-Nonce string 随机数:位数前端自定义
    App-Timestamp string 时间戳
    App-Signature string 数据签名

    App-Signature生成方式:SHA1(App-Secret + App-Nonce + App-Timestamp);

    即将App-SecretApp-NonceApp-Timestamp这三个字符串按先后顺序(也可以是其他顺序)进行SHA1摘要算法的加密。

    服务端从请求头中获取相应的数据:

    1. 验证App-Key的准确性。
    2. 根据规则也生成一个Signature,用后端生成的和前端传输过来的相比较,如果一致就表示认证通过。

    在传输过程中,这些数据都是能被外界获取的,但是App-Secret是没有在传输过程当中的。

    总结

    这种方式只能说在某种程度上防止了API被乱调用,如果抓包或者稍微懂点技术的人,还是很容易攻击的。但是如果我加上https,再加上双向认证,这样就很安全了。

    以上只是一种简单的方案,如果你有其他更简单更安全的方案,欢迎指教。

    相关文章

      网友评论

          本文标题:API认证方式

          本文链接:https://www.haomeiwen.com/subject/kcherxtx.html