呐,HTTP 接口安全的八种对策送给你了
🍁 作者:知识浅谈,CSDN 博客专家,阿里云签约博主,InfoQ 签约博主,华为云云享专家
📌 擅长领域:全栈工程师、爬虫、ACM 算法
💒 公众号:知识浅谈
🔥 联系方式 vx:zsqtcc
🤞呐,HTTP 接口安全的八种对策送给你了🤞
正菜来了⛳⛳⛳
🍮通信层面上 HTTPS 加密传输
作用:在通信层面使用 http+ssl 安全套接字进行传输。开发环境可以使用 http 传输,但是到了线上的生产环境要转换成 https 传输。
https:之所以能够安全的传输,因为通过非对称加密传递随机数,然后根据相同的加密算法使用随机数生成对称加密使用的密钥,之后数据传输的时候使用这个对称密钥。
🍮敏感数据加密传输
作用:关键数据自建加密规则防止泄露,通过非对称加密进行数据传输。敏感数据(密码、隐私内容)要做非对称加密非对称加密算法的执行过程:客户端申请请求,服务器发送公钥给客户端,客户端拿到公钥去给自己要传输的数据加密,讲加密后的数据传送到服务器,服务器用自己的密钥解密。
常见的非对称加密算法:RSA,Elgamal,Rabin 等。
🍮数据加签验签
作用:对提交数据增加签名防止数据在传输过程被修改有了 htps 等加密数据,为什么还需要加签验签有些小伙伴可能有疑问,加签验签主要是防止数据在传输过程中被篡改,那如果都用了 tts 下协议加密数据了,为什么还会被篡改呢?为什么还需要加签验签呢?数据在传输过程中被加密了,理论上,即使被抓包,数据也不会被篡改。但是 https7 不是绝对安全。还有一个点:https 加密的部分只是在外网,然后有很多服务是内网相互跳转的,加签也可以在这里保证不被中间人篡改,所以一般转账类安全性要求高的接口开发,都需要加签验签 JWT 的签名规则
🍮基于 Token 传输登录用户非敏感数据
作用点:前后端分离情况传递数据
🍮关键接口简历 nonce 防盗用机制
作用:预防请求被抓包盗用数据是很容易抓包的,假设我们用了 https 和加签,即使中间人抓到了数据报文,他也看不到真实的数据,但是有些不法者,他根本不关心真实的数据,而是直接抓到数据包,进行恶意请求(比如 DOS 攻击)。常用的解决办法:获取一个唯一标识机器的 id
Redis 新建 key :随机字符串,value:md5(客户端 user-agent/mac/ip/其他各种唯一标识),有效期 30 秒。
在客户端获得之后提交的时候,服务器端先根据 nonstr 字符串提取用户环境 md5,然后使用相同规侧对当前发来的用户特征进行校对,只有用户环境完全没有发生变化的前提下才运行执行该接口
🍮限流机制,黑名单,白名单
静态控制
基于 API 网关(Nginx、Spring Cloud Gateway)等实现静态规则编制。
动态控制
基于 Alibab Sentinel Dashboard 实施动态规则
请求过来之后,会被 WebInteceptor 拦截,按照运维推送过来的规则进行过滤。
🍮数据脱敏放弃规律
使用无规律的掩码预防爬虫攻击 Eg:http://www.xxx.com/get/1.jpghttp://www.xxx.com/get/2.jpghttp://www.xxx.com/get/3.jpg业务允许前提下关键数据脱敏数据库返回:13133344785API 接口返回:131XXXXXX85
🍮数据后端校验
接口数据的安全性保证,简单来说就是参数校验,比如身份证长度,手机号长度,是否是数字等等,永远必要相信前台传来的数据是合规合法的。
🍚总结
以上就是根据网上的整理学习做的总结,希望有所帮助。
版权声明: 本文为 InfoQ 作者【知识浅谈】的原创文章。
原文链接:【http://xie.infoq.cn/article/939787fd00beca6009fa4c3de】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论