业务安全之接口调用安全
关于接口设计安全,主要需要考虑两个方面的安全问题,一是接口访问验证及权限问题,主要解决接口访问的合法性(用户登录验证、来源验证、频率控制等);另外是数据传输安全,主要解决接口数据被监听篡改和接口错误处理(HTTPS安全传输、敏感内容加密、数字签名等)。
一.接口调用重放攻击
常见于短信/邮件&验证码接口、订单生成、评论提交等,需要对请求合法性校验,请求合法性校验主要就是指如何避免API被非法的调用。
修复建议:
1.对评论提交等操作采用验证码机制,防止生成数据业务被恶意调用;
2.短信/邮件接口,需要对接调用频率进行控制或者上限限制;
3.每一个订单(接口访问)使用唯一的token,提交一次后,token失效。
二.接口调用遍历漏洞
Web接口一般将常见的一些功能需求进行封装,通过传入不同的参数来获取对应的数据或者执行相应的功能,其中最常见的场景就是通过接口传入id参数,返回对应id的信息。此类接口如请求合法性校验不严,很容易出现非授权访问或者越权访问的问题。
修复建议:
1.在session中存储当前用户的凭证或者id,只有传入凭证或者id参数值与session中的一致才返回结果。
一般涉及身份校验的接口,不要直接将敏感信息的明文信息在客户端与服务端之间传递,可以将敏感信息在服务端关联到用户标识 ID,在客户端保存用户标识 ID 并提交到服务端,服务端根据 ID 取出对应信息后进行校验;
三.接口调用参数篡改漏洞
在短信、邮件调用业务环节中,例如短信验证码、邮件验证码。修改对应请求中手机号或邮箱地址参数提交后,如果修改后的手机号或邮箱收到系统发送的信息,则表示接口参数可被篡改。
修复建议:
1.会话Session中存储重要的凭证,在忘记密码、重新发送验证码等业务中,从Session获取用户凭证而不是从客户请求的参数中获取;
2.从客户端处获取手机号、邮箱等账号信息,要与Session中的凭证进行核验,验证通过后才允许进行业务操作。
四.接口未授权访问/调用漏洞
在正常的业务中,敏感功能的接口需要对访问者的身份进行验证,验证通过后才允许调用接口进行操作。接口未做身份验证或身份校验不严,可能导致非授权访问或越权调用,越权又分为垂直越权和水平越权。
修复建议:
1.采用Token校验的方式,在url中添加一个Token参数,只有Token验证通过才返回接口数据且Token使用一次后失效;
2.在接口被调用时,服务器端对会话状态进行验证,如果已经登录,便返回接口数据;如未登录,则返回自定义的错误信息;
3.未授权访问接口做Session认证,并对用户访问的每一个URL做身份鉴别,正确的校验用户id及token等;
3.服务器端需校验身份唯一性,访问接口来源验证,不同身份只能查看修改删除添加自己的信息。
业务安全之接口调用安全相关推荐
- java 异常补偿解决_第三方接口调用异常补偿机制实现实例记录
背景: 我们的组件(简称A),在业务链中属于数据支撑节点.其中与组件B存在接口同步数据的直接关系(API接口直接调用进行数据交互) 问题: 我们的上游有另一个组件C(带有界面),调用A(us)进行数据 ...
- 实现API接口调用--来源阿里云大学-归档
# API的概念和基本实现 P.S.这篇文章的价值在于做了视频内容的复练,不用再盯着视频过一遍 from:来自阿里云大学的免费学习课程,实现API接口调用 时间戳:2020年8月21日11:00:15 ...
- lua web快速开发指南(7) - 高效的接口调用 - httpc库
httpc库基于cf框架都内部实现的socket编写的http client库. httpc库内置SSL支持, 在不使用代理的情况下就可以请求第三方接口. httpc支持header.args.bod ...
- 支付宝支付之“单笔转账到支付宝账户接口”的调用(生成签名、上传应用公钥、下载SDK、接口调用、报错自动排查、查看错误码)
支付宝接口调用 "单笔转账到支付宝账户"的接口调用,一般涉及到下面几个知识点 1.生成签名 在使用支付宝接口的时候,需要使用支付宝的签名,这里需要使用支付宝的RSA生成工具. 关于 ...
- 国际短信平台接口调用的方法步骤,简单5步快速教程
如果您需要使用国际短信平台来满足您的业务需求,那么您需要了解短信平台接口调用的方法步骤. 接口调用是指您的应用程序通过网络接口与短信平台进行通信,从而实现向全世界发送短信的功能. 下面是国际短信平台接 ...
- 打造个人版微信小程序(1)——本地开发api接口调用
如果觉得这篇文章对您有所启发,欢迎关注我的公众号,我会尽可能积极和大家交流,谢谢. 从今天开始,开始打造一个个人版的微信小程序,尽早上线,方便大家使用以及技术讨论.这套小程序包括前台.后台.数据库 ...
- 手把手教你搭建SpringCloud项目(九)集成OpenFeign服务接口调用
Spring Cloud全集文章目录: 零.什么是微服务?一看就会系列! 一.手把手教你搭建SpringCloud项目(一)图文详解,傻瓜式操作 二.手把手教你搭建SpringCloud项目(二)生产 ...
- ajax 泛微oa表单js_接口调用示例
## **业务保存类接口格式说明** #### 接口协议主要采用http(s),因此下面从请求头,请求体,响应体方面做出说明 * **请求头格式** |请求头标识|必填|内容|备注| | --- | ...
- 一行代码搞定Dubbo接口调用
本文来自网易云社区 作者:吕彦峰 在工作中我们经常遇到关于接口测试的问题,无论是对于QA同学还是开发同学都会有远程接口调用的需求.针对这种问题我研发了一个工具包,专门用于远程Dubbo调用,下面就让我 ...
- 交通银行网上支付接口调用测试实例
公司最近有一个网站商城项目要开始开发了,这几天老板和几个同事一起开着需求会议, 讨论了接下来的业务规划和需求策略,等技术需求一下来还要讨论技术需求, 确认后再慢慢的进入开发阶段,趁着闲暇时间新造的人想 ...
最新文章
- pta 7-6 根据后序和中序遍历输出先序遍历 (25 分)
- 中的count函数_关于计数的5个函数都不掌握,那就真的Out了!
- Elasticsearch Javascript API增删改查
- mysql自然连接和等值连接_mysql sql99语法 内连接等值连接
- linux 卸载 rtx,Ubuntu20.04系统卸载软件及清理系统垃圾缓存以及新力得
- CentOS7.6安装Nodejs(Npm)
- [BUUCTF-pwn]——ez_pz_hackover_2016
- 《剑指offer》构建乘积数组
- html页面显示动态日期时间,如何在网页中动态显示当前日期和时间(js调用)
- java8 时间加一秒_好好讲讲关于Java中的时间处理
- 电脑关机同步服务器信息失败,电脑同步,更新时间失败,怎么处理?
- 正确理解文件与目录的可读、可写、可执行权限
- c语言中calc用法,CSS中calc()函数怎么使用
- 指南:清晰理解zkEVM、EVM 兼容性和Rollup
- mysql evict_善用MySQL AHI加速神器,让你的InnoDB查询飞起来!
- 用python绘制熊猫图案_python – 有没有办法在ggplot中绘制一个熊猫系列?
- JSTL【一】C标签的使用
- 目标检测网络之三叉戟TridentNet
- 搭建自己的以图搜图系统(二):深入优化搭建生产级别的图搜系统
- 听红楼 第十八回 隔珠帘父女勉忠勤 搦湘管姊弟裁题咏
热门文章
- HTML中的音视频标签
- 荣耀8微信总是无法连接服务器,微信无法登陆想要登陆的王者荣耀账号,怎么办?...
- matlab 12脉波变压器,12脉波整流电路MATLAB-Simulink仿真及谐波分析
- asp.net中gridview的绑定数据源实现增删改查
- java aspect调用,在Spring 中使用@Aspect 控制自定义注解的操作
- 青岛大学的计算机专业考研分数线,青岛大学考研分数线
- 幽暗镰刀:隐私安全下的收割者们
- 给别的计算机硬盘装系统,在一台计算机上装好系统的硬盘移到另一个电脑能用吗?...
- ROS学习:launch文件编写
- 廉颇老矣?尚能饭否?64岁的Python之父被微软录取!