接口调用是我们在使用java编程开发语言的时候会经常使用到的一个功能,而今天我们就通过案例分析来了解一下,java编程接口调用安全性都有哪些要求。

1、调用接口的先决条件-token

获取token一般会涉及到几个参数appid,appkey,timestamp,nonce,sign。我们通过以上几个参数来获取调用系统的凭证。

appid和appkey可以直接通过平台线上申请,也可以线下直接颁发。appid是全局的,每个appid将对应一个客户,appkey需要高度保密。

timestamp是时间戳,使用系统当前的unix时间戳。时间戳的目的就是为了减轻DOS攻击。防止请求被拦截后一直尝试请求接口。服务器端设置时间戳阀值,如果请求时间戳和服务器时间超过阀值,则响应失败。

nonce是随机值。随机值主要是为了增加sign的多变性,也可以保护接口的幂等性,相邻的两次请求nonce不允许重复,如果重复则认为是重复提交,响应失败。

sign是参数签名,将appkey,timestamp,nonce拼接起来进行md5加密(当然使用其他方式进行不可逆加密也没问题)。

2、使用POST作为接口请求方式

一般调用接口常用的两种方式就是GET和POST。两者的区别也很明显,GET请求会将参数暴露在浏览器URL中,而且对长度也有限制。为了更高的安全性,所有接口都采用POST方式请求。

3、客户端IP白名单

ip白名单是指将接口的访问权限对部分ip进行开放。这样就能避免其他ip进行访问攻击,设置ip白名单比较麻烦的一点就是当你的客户端进行迁移后,就需要重新联系服务提供者添加新的ip白名单。设置ip白名单的方式很多,除了传统的防火墙之外,springcloudalibaba提供的组件sentinel也支持白名单设置。为了降低api的复杂度,推荐使用防火墙规则进行白名单设置。

4、单个接口针对ip限流

限流是为了更好的维护系统稳定性。使用redis进行接口调用次数统计,ip+接口地址作为key,访问次数作为value,每次请求value+1,设置过期时长来限制接口的调用频率。

5、记录接口请求日志

使用aop全局记录请求日志,快速定位异常请求位置,排查问题原因。

6、敏感数据脱敏

在接口调用过程中,可能会涉及到订单号等敏感数据,这类数据通常需要脱敏处理,常用的方式就是加密。加密方式使用安全性比较高的RSA非对称加密。非对称加密算法有两个密钥,这两个密钥完全不同但又完全匹配。只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。

【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。

Java接口调用的安全性_java编程接口调用安全性都有哪些要求相关推荐

  1. java xfire指定参数名_Java编程中使用XFire框架调用WebService程序接口

    JAVA调用webservice,当你刚开始接触的时候你会觉得它是一个恶梦,特别是没有一个统一的标准实现,比起.net的那些几步就可以完成的webservice实现,我们看着JAVA的实现真是伤心啊. ...

  2. java获取get请求返回_Java中处理调用第三方接口(post/get),该如何处理,返回的数据如何处理...

    条件:1.请求URL:http://ip:port/yypt/*.jsonRequest 2.接口采用http post协议.Content-Type为application/json 调用流程: 第 ...

  3. java api接口报500_应用程序编程接口API,我们来聊一聊这个熟悉的名词

    API,全称叫做Application Programming interface,也就是应用程序接口,API是一些预先定义的函数,我是学Java的,当我要使用这些函数的时候,便可以直接调用Java ...

  4. java接口构造函数_Java8自定义函数式编程接口和便捷的引用类的构造器及方法

    什么是函数编程接口? 约束:抽象方法有且只有一个,即不能有多个抽象方法,在接口中覆写Object类中的public方法(如equals),不算是函数式接口的方法. 被@FunctionalInterf ...

  5. java同样作用的方法_Java的接口用途和方法

    1, 抽象类解决不了, 根本问题是Java的类不能多继承. 因为Tiger类继承了动物Animal类的特性(例如 move() 和 drink()) , 但是严格上来将 捕猎(hunt())并不算是动 ...

  6. 应用程序编程接口大全_应用程序编程接口101

    应用程序编程接口大全 Do apps like Uber, Pokémon Go and Zomato build their own maps to show where available car ...

  7. java 打印一棵树_java编程题之从上往下打印出二叉树

    本文实例为大家分享了java从上往下打印出二叉树的具体代码,供大家参考,具体内容如下 import java.util.ArrayList; import java.util.Stack; /** * ...

  8. java批量处理数据库语句_Java项目中调用bat批处理进行多用户数据库备份

    Java项目中调用bat批处理配合使用BCP进行多用户数据的备份 一.项目需求 最近项目中需要对数据库(Sql Server系列数据库)进行备份.项目中的需求不是简单的整个数据库的备份,而是根据用户来 ...

  9. java如何调用微信功能_Java编程调用微信分享功能示例

    本文实例讲述了java编程调用微信分享功能.分享给大家供大家参考,具体如下: 这篇文章介绍如何使用java开发微信分享功能,因为工作,已经开发完成,可使用. 如果想要自定义微信的分享功能,首先在自己的 ...

最新文章

  1. IXmaps揭示互联网流量是否被NSA监视
  2. Linux下快捷键使用
  3. STM32那点事(1)_STM32F40_41xx启动文件详解
  4. 裁员之后人手却不够,马斯克和母亲只好亲自上阵帮忙了
  5. 基于angular实现模拟微信小程序swiper组件
  6. ajax提交表单,包括跳入的坑!
  7. 修改DevExpress中英文提示,将英文改为中文
  8. 一个能拖动,能调整大小,能更新bind值的vue指令-vuedragx
  9. 关于CityEngine导入shp数据
  10. SQL连接两张或多张表
  11. uni-app之下拉刷新与 上拉加载
  12. H5页面跳转关注微信公众号页面
  13. 酷播云html5倍速功能视频播放器,Chrome扩展推荐:一个能16倍速播放的免费视频倍速播放器...
  14. Python强大的自省机制
  15. [Jupyter Notebook]导出好看的中文PDF
  16. 计算机原理形考3,计算机组成原理A形考作业3参考解答
  17. subclipse使用详解
  18. 那些支持我学习与工作的良师益友
  19. TCPIP详解Protocol 读书笔记(三) IP协议讲解
  20. Vs Cood 本地代码配置(个人使用)

热门文章

  1. 文字转语音免费导出,语音来至讯飞
  2. python插值计算
  3. Indonesians Using Smartphones to Connect to the Internet
  4. Firefox火狐浏览器安装selenium IDE插件实现自动化脚本录制教程
  5. 10米土地利用数据按行政区下载
  6. 宇宙的模式:递归、分形与循环
  7. python3 excel数据处理_求推荐python3入门教程,适合新手的(python excel数据处理)
  8. 用python写一个自动生成春联的软件,打包exe
  9. linux中sem_wait函数,semwait sem_wait的函数说明
  10. R与结构方程模型(1):SEM的核心