背景

开放 API 接口如果没有经过安全处理,则很容易出现三类安全问题,包括信息截获、篡改与泄露。

首先是用户密码容易被截获,比如某家公司在开发开放式 API 时,没有对其进行安全控制,那么该公司的客户信息很容易被黑客截获,黑客在掌握客户的用户名、密码等相关信息与资料后,便能够利用客户的身份来登录,使得客户的隐私信息泄露,黑客便可以轻易地盗刷客户信用卡,使得客户承受损伤;其次是表单数据很容易被篡改,比如某家公司所开发的开放 API 并没有进行过防篡改控制,有客户在购买1000 元产品后,其提交表单被黑客利用技术手段篡改为 10 块钱,从而使得公司产生了经济损失。

开放 API 接口安全问题解决方案

针对开放 API 平台存在的上述安全问题,可以使用非对称加密、MD5 摘要以及令牌机制进行预防和阻击。使用Eolinker Api 测试工具对API接口信息进行加密,使得接口调用更加安全放心。

如图1 ,Eolinker API接口测试工具提供多种加密方式。

图1

非对称加密的加密与解密流程

开放 API 平台生成公钥和私钥,并将公钥对外公布,提供给需要对接 API 的人员。对接 API 的人员将用户的数据使用公钥进行加密传输,即使有黑客使用抓包工具截取到了报文,但是由于解密用户数据只能使用 API 平台自己拥有的私钥才能解密,所以即使报文数据泄露,由于没有钥匙解开传输的信息,黑客获得了报文也无可奈何,非对称加密解决了用户传输用户名、密码等敏感信息泄露的问题。

RSA 与 HTTPS 的对比

如果条件允许,建议开放 API 接口都使用 HTTPS 协议传输数据。使用 HTTPS 传输相较于 RSA 加密更安全。HTTPS顾名思义,即安全的 HTTP,HTTPS 的主要作用是确认双方的身份和建立安全通道,保证传输数据的安全。

HTTPS 既用到了非对称加密,也用到了对称加密。相较于 RSA 加密,RSA 加密实现的,HTTPS 都能实现。但是 HTTPS 存在维护成本高、服务器开销大、需要购买证书、性能相对低的问题,所以出于成本的考虑不能使用 HTTPS,使用 RSA 加密算法是最优的选择。使用Eolinker API接口测试工具选择HTTPS方式进行接口测试。如图2。

图2

令牌鉴权

令牌可以理解为通行证,开放 API 接口暴露在公网之后就相当于一个敞开大门一样,所有人都可以随意进出,对于豪宅内的财产而言,这是很不安全的。

这时就需要一个保安查看进出人员的通行证,只有获得通行许可的人员可以进出,没有通行证的人员一律会被拦在大门外,不得进入。

同样对于开放 API 接口而言,如果没有令牌机制,所有人都可以通过接口获取数据,造成平台数据流失,给公司和客户造成不可估量的损失。所以使用令牌进行鉴权是非常有必要的。

开放 API 调用方需要在每一次接口调用中都携带令牌,服务器则在过滤器中进行令牌的校验,包含校验令牌是否存在、令牌是否已经过期等。如果令牌在 REDIS 缓存服务器中不存在,或者令牌已过期,则接口服务器直接返回异常信息,由接口调用方进行捕获,强制客户重新登录获取新的令牌,再进行后续操作。

总结

随着硬件设备分布式计算能力的不断提升、大数据处理能力的完善,也许现在还算先进的防护措施,在不久的将来就会变得不堪一击。数据安全的攻防势必是一场持久战,只有不断总结、改进,才能保护核心数据和客户的权益。

文中演示工具为Eolink,支持在线使用。感兴趣者可直接访问:www.eolink.com使用!

API 接口的安全处理相关推荐

  1. java跨域权重_爱站权重查询 API 接口请求调用

    原标题:爱站权重查询 API 接口请求调用 爱站权重查询 API 接口在网上已经很多且大都封装成了 API 供别人调用.支持前台跨域请求,以GET/POST方式提交即可.爱站权重查询 API 接口可以 ...

  2. 使用Node.js写一个简单的api接口

    引入Http模块 默认你已经安装了Node.js Node当中内置了Http模块: 可以使用 var http= require("http"); 复制代码 引入http模块: H ...

  3. Swagger 生成 PHP restful API 接口文档

    需求和背景 需求: 为客户端同事写接口文档的各位后端同学,已经在各种场合回忆了使用自动化文档工具前手写文档的血泪史. 我的故事却又不同,因为首先来说,我在公司是 Android 组负责人,属于上述血泪 ...

  4. shell脚本api接口考虑并发问题的可行性操作

    当我们通过收集每台客户端数据后通过api接口上传到云服务器时,可能会由于客户端过多,几千以至于几万,这时不得不考虑个问题: 并发的问题,同时并发上传文件,可能导致api接口挂掉,但如果我们让文件错开时 ...

  5. js学习总结----crm客户管理系统之项目开发流程和api接口文档

    CRM ->客户管理系统 CMS ->内容发布管理系统 ERP ->企业战略信息管理系统 OA -> 企业办公管理系统 产品 / UI设计:需求分析,产品定位,市场调查...按 ...

  6. 看看人家那后端API接口写得,那叫一个优雅!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:r6d.cn/tEvn 在移动互联网,分布式.微服务 ...

  7. 拒绝接口裸奔!开放API接口签名验证!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:r6d.cn/kChH 接口安全问题 请求身份是否合 ...

  8. Java 如何设计 API 接口,实现统一格式返回?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:老顾聊技术 前言 接口交互 返回格式 控制层Controll ...

  9. 面试官:如何做 API 接口防刷??

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试资料 来源:blog.csdn.net/weixin_42533856/ ...

  10. vue2.0 + vux (五)api接口封装 及 首页 轮播图制作

    1.安装 jquery 和 whatwg-fetch (优雅的异步请求API) npm install jquery --save npm install whatwg-fetch --save 2. ...

最新文章

  1. 小蚂蚁学习mysql性能优化(5)--SQL以及索引优化--需要添加索引的列
  2. OpenGL 着色器的N体仿真
  3. 【Qt】Qt中QJsonValue类
  4. GitLab 安装笔记
  5. Java源码:java.lang.reflect反射之AccessibleObject、ReflectionFactory、Filed、Method、Constructor类
  6. C++ —— C++数据类型
  7. 【洛谷】P1052 过河(状压dp)
  8. java业务类_Java_业务层开发
  9. hdu 4794 FIb求循环节
  10. HDU 2037 今年暑假不AC
  11. 量子计算机 霍金,科学家正在使用量子粒子窥视黑洞内部
  12. 深度学习常规概念(持续更新)
  13. 服务器上的服务一直自动关闭,关于服务器老是自动关闭
  14. Gartner 魔力象限:数据中心备份和恢复解决方案 2020年
  15. 要报销的发票如何批量下载打印
  16. java毕业设计大学生创业众筹系统mybatis+源码+调试部署+系统+数据库+lw
  17. Qt cef3 无边框程序最小化之后,再打开 hover 状态失效
  18. 连夜下架杨笠代言的Intel,扯下了科技圈“男孩俱乐部”的遮羞布
  19. es6.3.1 搜索中must和should混合的用法
  20. Mongodb空密码可连接安全性问题

热门文章

  1. Rust裸指针的安全性实例
  2. 嵌入式单片机高级篇(三)Stm32F103+OV2640摄像头
  3. IBM LinuxONE Community Cloud 免费试用申请教程
  4. 我开始用心的寂寞妆点着梦的沧桑
  5. 数据经济专题二:地级市、县域、企业数字经济指数、数字乡村指数、相关专利获得情况
  6. 易语言创建大漠模块及免注册调用大漠
  7. reaver 使用方法
  8. android 百度地图 addoverlay,百度地图 在调用 addOverlay 方法时闪图
  9. 我的世界无限矿石服务器,我的世界服务器反矿石追踪插件
  10. 将常规图像重新表征的几个方法