博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里大师带你详解API接口安全
阅读量:6893 次
发布时间:2019-06-27

本文共 1286 字,大约阅读时间需要 4 分钟。

API安全机制

为什么要保证API安全

接口的安全性主要围绕Token、Timestamp和Sign三个机制展开设计,保证接口的数据不会被篡改和重复调用,下面具体来看:

Token授权机制:用户使用用户名密码登录后服务器给客户端返回一个Token(通常是UUID),并将Token-UserId以键值对的形式存放在缓存服务器中。服务端接收到请求后进行Token验证,如果Token不存在,说明请求无效。

时间戳超时机制:用户每次请求都带上当前时间的时间戳timestamp,服务端接收到timestamp后跟当前时间进行比对,如果时间差大于一定时间(比如5分钟),则认为该请求失效,这个时间要保证足够完成本次请求的同时尽量短,可以减少缓存服务器的压力(见签名机制)。

签名机制:将Token和时间戳加上其他请求参数就行MD5或SHA-1算法(可根据情况加点盐)加密,加密后的数据为本次请求的签名sign,并将该签名存放到缓存服务器中,超时时间设定为跟时间戳的超时时间一致(这就是为什么要尽量短,二者时间一致可以保证无论在timestamp规定时间内还是外本URL都只能访问一次)。服务端接收到请求后以同样的算法得到签名,并跟当前的签名进行比对,如果不一样,说明参数被更改过,直接返回错误标识。同一个签名只能使用一次,如果发现缓存服务器中已经存在了本次签名,则拒绝服务。

    1. 防止别人随便调用你的api
    1. 保证传输数据的安全

那么你的API还在裸奔吗?看阿里大师教你安全的代码姿势!(附详细视频教程)

  • 1,前后端分离mvvm模式的N宗罪;

  • 2,5分钟搞定密码学的对称/非对称加密;

  • 3,接口签名,防止数据篡改之泰斗;

  • 4,用代码告诉你,令牌实现身份认证;

  • 5,优雅处理身份认证,让业务代码更6;

数据加密

加密方法

  • 1,对称加密

AES,3DES,DES等,适合做大量数据或数据文件的加解密。

  • 2,非对称加密

如RSA,Rabin。公钥加密,私钥解密。对大数据量进行加解密时性能较低。

Api有哪些安全问题?http接口—前后端分离mvvm

安全够了吗,还有哪些要做?

身份认证—token令牌

身份认证的封装—cookie隐式携带token

传输安全

互联网发展到今天,大家越来越重视自己的隐私,各大公司也越来越重视数据的安全。传输过程中的数据安全解决方案主要是“HPPTS”,能够有效防止中间人攻击等。但是API中重要的参数还是要进行加密,常用DES或者AES进行加密。有见过API中密码直接MD5后就行传输,但是MD5在2009年谢涛和冯登国仅用了220.96的碰撞算法复杂度,破解了MD5的碰撞抵抗,该攻击在普通计算机上运行只需要数秒钟,引自[维基百科]。

总结

安全是一个永恒的话题,随着各大网站全站https的推进,安全也越来越被重视。签名设计大家必须有,HTTPS希望大家有。

本文的重点是API的接口安全。需要更详细思维导图和视频资料的可以评论区留言,我会发送

转载于:https://juejin.im/post/5cc81baa51882525147fc3aa

你可能感兴趣的文章
移动web问题小结
查看>>
递归排序(如:1,1,2,3,5,8,13,21,34....求第i个数)
查看>>
MAC OS环境下搭建基于Python语言的Selenium2自动化测试环境
查看>>
HumanActivitySystemParameterSetting
查看>>
golang 编辑器选择
查看>>
ThinkCMF-如何收藏
查看>>
怎么判断一个服务器的服务器性能
查看>>
Linux下pipe使用注意事项
查看>>
WCF系列教程之WCF服务配置工具
查看>>
Linux网络命令
查看>>
浅谈JavaScript的函数的call以及apply
查看>>
BZOJ 2666: [cqoi2012]组装
查看>>
System 这四个单元多用用(近期)
查看>>
Html5使用history对象history.pushState()和history.replaceState()方法添加和修改浏览历史记录...
查看>>
SVN 钩子 允许用户修改Subversion日志的钩子脚本(转)
查看>>
算法学习一
查看>>
像素PX厘米转换
查看>>
webpack使用babel
查看>>
201314
查看>>
python list 的查找, 搜索, 定位, 统计
查看>>