常见的保证接口数据安全8种方案

这篇具有很好参考价值的文章主要介绍了常见的保证接口数据安全8种方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们都知道,数据在网络传输过程中,很容易被抓包。特别使用的是http协议(报文明文传输),用户的数据就很容易被别人获取。那么有哪些常见的保证接口数据安全的方案呢?

1.数据加密,防止报文明文传输。

1.1 什么是数据加密?

常见的实现方式,就是对关键字段加密。比如,你一个登录的接口,你可以对密码加密。一般使用对称加密算法(常见DES、AES、RC5、Blowfish、IDEA)来加解密,或者哈希算法处理(常见MD5、SHA-1、SHA-256、SHA-X)。

对称加密:加密和解密使用相同密钥的加密算法。特点:加解密效率高,速度快,适合大数据量加解密

接口安全,系统安全,https,ssl,系统安全,web安全,软件构建

非对称加密:非对称加密算法需要两个密钥(公开密钥和私有密钥)。公钥与私钥是成对存在的,如果用公钥对数据进行加密,只有对应的私钥才能解密。特点:算法复杂,加解密速度慢,但安全性高。一般与对称加密结合使用(对称加密通信内容,非对称加密对称秘钥)。

更安全的做法,就是用非对称加密算法(常见RSA、DH、DSA、ECC),公钥加密,私钥解密。

接口安全,系统安全,https,ssl,系统安全,web安全,软件构建

如果需要对所有字段都加密,一般直接使用https协议https采用的是非对称加密与对称加密结合使用的方式:对称加密通信内容,非对称加密对称秘钥。

接口安全,系统安全,https,ssl,系统安全,web安全,软件构建

2. 数据加签验签

数据报文加签验签,是保证数据传输安全的常用手段,它可以保证数据在传输过程中不被篡改。

2.1 什么是加签验签呢?

  • 数据加签:用Hash算法(如MD5,或者SHA-256)生成原始请求参数报文摘要,然后用私钥对摘要进行加密,得到报文数字签名sign(这个过程就是加签)。通常来说,请求方会把数字签名和报文原文一并发送给接收方。

接口安全,系统安全,https,ssl,系统安全,web安全,软件构建

  • 验签:接收方拿到原始报文和数字签名(sign)后,用同一个Hash算法生成报文摘要A.再用对方提供的公钥对数字签名进行解密,得到摘要B,对比A和B是否相同,就可以确定报文是否被被篡改。

接口安全,系统安全,https,ssl,系统安全,web安全,软件构建

3.token授权认证机制

日常开发中,我们的网站或者APP,都是需要用户登录的。那么如何确认用户身份的呢?可以使用token授权机制。

3.1 token的授权认证方案

token的授权认证方案:用户在客户端输入用户名和密码进行登录,服务端会校验密码成功,并给客户端返回一个唯一值token,并将token以键值对的形式存放在缓存(一般是Redis)中。后续客户端对需要授权模块的所有操作都要带上这个token,服务器端接收到请求后,先进行token验证,如果token存在,才表明是合法请求。

token登录授权流程图如下:

接口安全,系统安全,https,ssl,系统安全,web安全,软件构建

  1. 用户输入用户名和密码,发起登录请求

  2. 服务端校验密码,如果校验通过,生成一个全局唯一的token

  3. token存储在redis中,其中keytokenvalueuserId或者是用户信息,设置一个过期时间。

  4. 把这个token返回给客户端

  5. 用户发起其他业务请求时,需要带上这个token

  6. 后台服务会统一拦截接口请求,进行token有效性校验,并从中获取用户信息,供后续业务逻辑使用。如果token不存在,说明请求无效。

3.2 如何保证token的安全?t是不是拿到token就可以可以调用服务器端的任何接口?

可以从这几个方面出发考虑:

  • token设置合理的有效期

  • 使用https协议

  • token可以再次加密

  • 如果访问的是敏感信息,单纯加token是不够的,通常会再配置白名单

4. 时间戳timestamp超时机制

数据是很容易抓包的,假设我们用了https和加签,即使中间人抓到了数据报文,它也看不到真实数据。但是有些不法者,他根本不关心真实的数据,而是直接拿到抓取的数据包,进行恶意请求(比如DOS攻击),以搞垮你的系统。

我们可以引入时间戳超时机制,来保证接口安全。就是:用户每次请求都带上当前时间的时间戳timestamp,服务端接收到timestamp后,解密,验签通过后,与服务器当前时间进行比对,如果时间差大于一定时间 (比如3分钟),则认为该请求无效。

5. timestamp+nonce方案防止重放攻击

时间戳超时机制也是有漏洞的,如果是在时间差内,黑客进行的重放攻击,那就不好使了。可以使用timestamp+nonce方案。

nonce指唯一的随机字符串,用来标识每个被签名的请求。我们可以将每次请求的nonce参数存储到一个“set集合”中,或者可以json格式存储到数据库或缓存中。每次处理HTTP请求时,首先判断该请求的nonce参数是否在该“集合”中,如果存在则认为是非法请求。

然而对服务器来说,永久保存nonce的代价是非常大的。可以结合timestamp来优化。因为timstamp参数对于超过3min的请求,都认为非法请求,所以我们只需要存储3minnonce参数的“集合”即可。

6. 限流机制

如果用户本来就是就是真实用户,他恶意频繁调用接口,想搞垮你的系统呢?这种情况就需要接入限流了。

可以使用GuavaRateLimiter单机版限流,也可以使用Redis分布式限流,还可以使用阿里开源组件sentinel限流。比如说,一分钟可以接受多少次请求。

7. 黑名单机制

如果发现了真实用户恶意请求,你可以搞个黑名单机制,把该用户拉黑。一般情况,会有些竞争对手,或者不坏好意的用户,想搞你的系统的。所以,为了保证安全,一般我们的业务系统,需要有个黑名单机制。对于黑名单发起的请求,直接返回错误码好了。

8. 白名单机制

有了黑名单机制,也可以搞个白名单机制。比如说企业微信、钉钉等,如果有外面的商户要接入他们的系统,则需要提前配置IP白名单,才可以访问。文章来源地址https://www.toymoban.com/news/detail-798157.html

到了这里,关于常见的保证接口数据安全8种方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Java调用HTTPS接口,绕过SSL认证

    Java调用HTTPS接口,绕过SSL认证

    网络编程中,HTTPS(Hypertext Transfer Protocol Secure)是一种通过加密的方式在计算机网络上进行安全通信的协议。网络传输协议,跟http相比更安全,因为他加上了SSL/TLS协议来加密通信内容。 Java调用HTTPS,需要与客户端建立连接,但是建立连接的时候,需要进行SSL认证。有的时候

    2024年02月06日
    浏览(5)
  • SpringBoot如何保证接口安全?

    SpringBoot如何保证接口安全?

    对于互联网来说,只要你系统的接口暴露在外网,就避免不了接口安全问题。如果你的接口在外网裸奔,只要让黑客知道接口的地址和参数就可以调用,那简直就是灾难。 举个例子:你的网站用户注册的时候,需要填写手机号,发送手机验证码,如果这个发送验证码的接口没

    2024年02月07日
    浏览(10)
  • 如何保证对外接口的安全?

    如何保证对外接口的安全?

    1.什么是安全接口? 通常来说要将暴露在外网的 API 接口视为安全接口,需要实现防篡改和防重放的功能。 1.1 什么是篡改问题? 由于 HTTP 是一种无状态协议,服务端无法确定客户端发送的请求是否合法,也不了解请求中的参数是否正确。以一个充值接口为例: 如果非法用户

    2024年03月08日
    浏览(13)
  • HTTPS是如何保证安全的(1),HTML常用标签之列表标签

    HTTPS是如何保证安全的(1),HTML常用标签之列表标签

    SSL/TLS协议就是为了解决上面提到的HTTP存在的问题而生的,下面我们来看一下它是怎么解决的: 所有的信息都是加密传输的,第三方无法窃听 配备身份验证,防止身份被冒充 具有校验机制,一旦被篡改,通信双方会立刻发现 加密 – 对称加密 加密和解密同用一个秘钥的方式称

    2024年04月14日
    浏览(10)
  • hutool工具进行https接口调用(忽略ssl认证)

    1.设置忽略SSl工具类 2.工具类设置

    2024年02月04日
    浏览(10)
  • Spring Boot 如何保证接口安全?有哪些常用的接口安全技术?

    在当今互联网时代,保障接口安全已经成为了每个企业必须面对的重要问题。作为一个快速开发框架,Spring Boot 同样需要保障其接口的安全性。本文将详细介绍 Spring Boot 如何保证接口安全,以及常用的接口安全技术。 Spring Boot 作为一个快速开发框架,在开发过程中会遇到大

    2024年02月13日
    浏览(22)
  • 【软考网络管理员】2023年软考网管初级常见知识考点(18)-安全协议SSL与PGP、数据加密技术

    【软考网络管理员】2023年软考网管初级常见知识考点(18)-安全协议SSL与PGP、数据加密技术

    安全套接层协议SSL详解,PGP协议是什么?数据加密技术有哪些?软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 原创于:CSDN博主-《拄杖盲学轻声码》,更多考点汇总可以去他主页查看 更多考试总结可关注CSDN博主-《拄杖盲学轻声码》 SSL可以对

    2024年02月11日
    浏览(20)
  • springboot前后端分离项目配置https接口(ssl证书)

    springboot前后端分离项目配置https接口(ssl证书)

    本记录操作方法vue.js项目使用nginx代理部署,后端springboot正常部署 前端使用443端口,后端使用8080端口 全部接口使用https vue.js配置axios相对路径,好处:请求代理再nginx.conf中配置,无需重新修改代码 request和response 拦截器根据具体项目要求进行配置 在/usr/front/vue下创建Dockerf

    2024年02月03日
    浏览(14)
  • HTTPS是如何保证安全的(1),字节跳动+腾讯+华为+小米+阿里面试题分享

    HTTPS是如何保证安全的(1),字节跳动+腾讯+华为+小米+阿里面试题分享

    服务端发送给浏览器 加密方法以及公钥 之后浏览器通过公钥将数据加密传输给服务端,服务端收到数据使用私钥进行解密。服务端给浏览器发送数据,则使用私钥进行加密,浏览器收到服务端发送过来的数据,使用公钥进行解密。 存在的问题: 非对称加密效率太低 , 这会

    2024年04月10日
    浏览(16)
  • Web系统常见安全漏洞介绍及解决方案-CSRF攻击

    Web系统常见安全漏洞介绍及解决方案-CSRF攻击

    🐳博客主页:拒绝冗余 – 生命不息,折腾不止 🌐订阅专栏:『Web安全』 📰如觉得博主文章写的不错或对你有所帮助的话,还望大家多多支持呀! 👉关注✨、点赞👍、收藏📂、评论。 CSRF跨站请求伪造,全称Cross-site request forgery,是指利用受害者尚未失效的身份认证信息

    2024年01月22日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包