您当前的位置:首页 > 电脑百科 > 网络技术 > 网络安全

你开放的API接口真的安全吗

时间:2022-02-21 09:43:41  来源:  作者:Darker.

你开放的接口真的就很安全吗,看看有没有做到如下几点

1.请求身份验证

2.请求参数校验

3.请求是否唯一

4.请求次数限制

请求身份验证
基于AccessKey:为接口调用放分配AccessKey和SecretKey(不参与传输,只用于本地接口加密,不能泄露)

基于token身份验证:
1.用户登录提供认证信息(如:账号密码)服务器验证成功后将用户信息保存到token内并设置有效期,再返回token给调用方
2.调用方保存token,并在有效期内重新换取token,保证token是有效的
3.服务器验证token有效性,无效则拦截请求返回错误信息,反之则从token内获取用户信息进行后续操作

请求参数校验
1.校验参数合理性(如:参数类型,参数长度,参数值校验)
2.防止XSS,SQL注入(解决方案:过滤敏感字符或直接返回错误信息)
3.校验参数可靠性是否被篡改(可以将参数以特定格式排列+秘钥组成字符串,在进行MD5或SHA签名)

请求是否唯一
前面第3点解决了请求参数被篡改的隐患,但是还存在着重复使用请求参数伪造二次请求的隐患

timestamp+nonce方案

nonce指唯一的随机字符串 ,用来标识每个被签名的请求。通过为每个请求提供一个唯一的标识符,服务器能够防止请求被多次使用(记录所有用过的nonce以阻止它们被二次使用)。

然而,对服务器来说永久存储所有接收到的nonce的代价是非常大的。可以使用timestamp来优化nonce的存储 。

假设允许客户端和服务端最多能存在15分钟的时间差,同时追踪记录在服务端的nonce集合。当有新的请求进入时,首先检查携带的timestamp是否在15分钟内,如超出时间范围,则拒绝,然后查询携带的nonce,如存在已有集合,则拒绝。否则,记录该nonce,并删除集合内时间戳大于15分钟的nonce(可以使用redis的expire,新增nonce的同时设置它的超时失效时间为15分钟)。

请求次数限制

某些资源我们需要限制用户的请求次数,同时也为了防止非人为操作可能导致系统的崩溃
实现思路如下:
假如我们允许用户每秒钟最多10次请求,超过10次则返回“手速太快了,慢点把。。”
这里我们使用redis辅助我们实现:

以用户IP为key,请求次数为value,有效时间为1秒
用户在每秒的第一次访问的时候,此时我们的redis是没有key为用户ip的数据的(因为失效了,或者第一次请求)所以我们要初始化当前请求用户的ip为keyvalue为0到redis数据库

当用户在1s内再次发起请求我们就将此ip的请求次数+1,并判断请求次数是否已近>=10
>=10则返回给用户手速太快了!请稍后重试..否则继续执行后续操作

具体实现代码如下:

 Boolean hasIp = redisUtil.hasKey(key);
if (!hasIp) {
            //初始化ip=0
            redisUtil.setEx(key, "0", 1, TimeUnit.SECONDS);
            return true;
 }
 int reqCount = 0;
        String s = redisUtil.get(key);
        if (!StringUtils.isEmpty(s)) {
            reqCount = Integer.parseInt(s);
        }
     
        if (reqCount >= 10) {
            //请求次数大于10限制访问

            throw new ApiRRException("手速太快了!请稍后重试..");
        }
//对请求次数++
        redisUtil.setEx(key, (reqCount + 1) + "", 1, TimeUnit.SECONDS);


Tags:API接口   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
优雅实现API接口开关:让你的应用更可控
环境:SpringBoot2.7.121. 概述本文将介绍如何为API接口动态添加开关功能。通过这个功能,我们可以控制API接口的正常访问或显示提示信息。这有助于在开发和维护过程中更好地管...【详细内容】
2023-11-28  Search: API接口  点击:(109)  评论:(0)  加入收藏
OpenHarmony4.0发布:新增4000多个API接口,交互及隐私能力增强
钛媒体App 11月6日消息,以“技术筑生态,智联赢未来”为主题的第二届OpenHarmony技术大会在北京举办,活动中,OpenHarmony 4.0版本正式发布。据介绍,OpenHarmony4.0版本开发套件同...【详细内容】
2023-11-07  Search: API接口  点击:(144)  评论:(0)  加入收藏
API接口参数验证的必备神器,让你的代码更高效!
环境:Springboot2.6.121. 简介Spring Validation是一种轻量级的数据验证框架,主要用于对Java对象进行校验。它为数据验证提供了统一的接口和基本的校验功能,解决了数据校验这一...【详细内容】
2023-11-07  Search: API接口  点击:(303)  评论:(0)  加入收藏
API接口脱敏:如何安全地处理敏感数据?
环境:SpringBoot2.6.12API接口脱敏是一种保护敏感数据的重要方法。它涉及到在数据传输和存储过程中,将敏感数据替换为无意义或伪装的数据,以防止未经授权的访问和泄露。下面是...【详细内容】
2023-10-07  Search: API接口  点击:(317)  评论:(0)  加入收藏
详解API接口如何安全的传输数据
在Spring中我们通过继承RequestBodyAdviceAdapter实现对于请求的内容进行解密操作,实现ResponseBodyAdvice来对相应内容进行加密处理。接下来将详细讲解数据加解密的实现过程...【详细内容】
2023-08-28  Search: API接口  点击:(259)  评论:(0)  加入收藏
如何调用AI室内设计软件的API接口
在此篇干货教程中,我将以向大家介绍如何使用API接口调用和接入AI室内设计。让我们一起来了解吧!...【详细内容】
2023-08-17  Search: API接口  点击:(336)  评论:(0)  加入收藏
如何接入midjourney的api接口
在进行midjourney的API开发之前,首先需要了解如何接入、调用和申请midjourney的API接口。✨midjourney的API无法直接调用,需要通过触站AI来调用midjourney的API接口。...【详细内容】
2023-08-06  Search: API接口  点击:(248)  评论:(0)  加入收藏
如何搭建ai绘画软件,一个API接口即可实现
以触站AI的API接口为例,教大家如何搭建ai绘画网站!首先,我们在触站AI找到:API开放接口先来测试一下效果:调用触站AI绘画网站的API步骤操作:1. 注册账号并获取API密钥:首先,您需要在A...【详细内容】
2023-07-31  Search: API接口  点击:(295)  评论:(0)  加入收藏
OpenAI大更新,API接口升级,并降低价格
6月14日消息,OpenAI为了在生成式人工智能领域中保持竞争优势,正在升级文本生成模型,并降低价格。美国当地时间周二,OpenAI宣布发布了GPT-3.5 Turbo和GPT-4的新版本。其中,GPT-4是...【详细内容】
2023-06-14  Search: API接口  点击:(71)  评论:(0)  加入收藏
建立高效的API接口安全策略
前言伴随互联网革命快速创新发展,API 需求的日益剧增,针对 API 的攻击几乎遍布各个行业,据报道 2022 年全年平均每月遭受攻击的 API 数量超过 21 万,游戏、社交、电商、制造等行...【详细内容】
2023-05-26  Search: API接口  点击:(278)  评论:(0)  加入收藏
▌简易百科推荐
网络安全行业的春天何时来?
2023年下半年开始,网络安全从业人员都感受到了网安行业的寒冬,但是其实前奏并不是此刻,只是涉及到大量裁员关乎自身而人人感同身受。从近五年各个网络安全上市公司财报可以发现...【详细内容】
2024-04-11  兰花豆说网络安全    Tags:网络安全   点击:(6)  评论:(0)  加入收藏
数据可视化在网络安全中的关键作用
在当今数字化时代,网络安全已成为各大企业乃至国家安全的重要组成部分。随着网络攻击的日益复杂和隐蔽,传统的网络安全防护措施已难以满足需求,急需新型的解决方案以增强网络防...【详细内容】
2024-03-29  小嵩鼠    Tags:数据可视化   点击:(22)  评论:(0)  加入收藏
AI时代的网络安全:探索AI生成的网络攻击
译者 | 晶颜审校 | 重楼长期以来,网络攻击一直是劳动密集型的,需要经过精心策划并投入大量的人工研究。然而,随着人工智能技术的出现,威胁行为者已经成功利用它们的能力,以非凡的...【详细内容】
2024-03-27    51CTO  Tags:网络安全   点击:(17)  评论:(0)  加入收藏
详解渗透测试和漏洞扫描的开源自动化解决方案
译者 | 刘涛审校 | 重楼目录 什么是渗透测试 规划和侦察 扫描 开发和获得访问权限 维持访问权 报告和控制 什么是漏洞扫描 渗透测试工具 渗透测试的自动化 渗透自动化工作流...【详细内容】
2024-02-27    51CTO  Tags:渗透测试   点击:(32)  评论:(0)  加入收藏
如何保护你的电脑不受黑客攻击
在数字时代,网络安全已经成为每个人必须关注的重要问题。黑客攻击、数据泄露和网络犯罪等事件频频发生,使得我们的个人隐私和财产安全面临严重威胁。那么,如何保护你的电脑不受...【详细内容】
2024-02-04  佳慧慧    Tags:黑客攻击   点击:(52)  评论:(0)  加入收藏
2024年需要高度关注的六大网络安全威胁
译者 | 晶颜审校 | 重楼创新技术(如生成式人工智能、无代码应用程序、自动化和物联网)的兴起和迅速采用,极大地改变了每个行业的全球网络安全和合规格局。网络犯罪分子正在转向...【详细内容】
2024-01-03    51CTO  Tags:网络安全威胁   点击:(111)  评论:(0)  加入收藏
终端设备通信网络安全防护方案
终端设备的网络安全是一个综合性问题,需要用户、组织和厂商共同努力,采取一系列的措施来保护终端设备的安全。终端设备网络安全防护方案主要包括以下几个方面:1. 强化用户身份...【详细内容】
2024-01-01  若水叁仟    Tags:网络安全   点击:(56)  评论:(0)  加入收藏
深入解析802.1X认证:网络安全的守护者
802.1X认证,对于很多人来说,可能只是一个陌生的技术名词。然而,在网络安全的领域中,它却扮演着守护者的角色。今天,我们就来深入解析802.1X认证,看看它是如何保护我们的网络安全的...【详细内容】
2023-12-31  韦希喜    Tags:网络安全   点击:(70)  评论:(0)  加入收藏
提升网络安全:ADSelfService Plus多重身份验证的关键
在当今数字化的时代,网络安全问题愈发突出,企业和组织面临着日益严峻的挑战。为了应对不断进化的网络威胁,越来越多的组织开始采用多层次的安全措施,其中多重身份验证成为了关键...【详细内容】
2023-12-27  运维有小邓    Tags:网络安全   点击:(88)  评论:(0)  加入收藏
企业如何应对网络钓鱼攻击的激增?
随着我们进入数字时代,网络犯罪的威胁继续以惊人的速度增长。在最流行的网络犯罪形式中,网络钓鱼仅在过去一年就出现了472%的攻击激增。企业在保护自己及其客户免受网络钓鱼诈...【详细内容】
2023-12-19    千家网  Tags:钓鱼攻击   点击:(88)  评论:(0)  加入收藏
站内最新
站内热门
站内头条