Java接口调用的安全性_java编程接口调用安全性都有哪些要求
接口调用是我们在使用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编程接口调用安全性都有哪些要求相关推荐
- java xfire指定参数名_Java编程中使用XFire框架调用WebService程序接口
JAVA调用webservice,当你刚开始接触的时候你会觉得它是一个恶梦,特别是没有一个统一的标准实现,比起.net的那些几步就可以完成的webservice实现,我们看着JAVA的实现真是伤心啊. ...
- java获取get请求返回_Java中处理调用第三方接口(post/get),该如何处理,返回的数据如何处理...
条件:1.请求URL:http://ip:port/yypt/*.jsonRequest 2.接口采用http post协议.Content-Type为application/json 调用流程: 第 ...
- java api接口报500_应用程序编程接口API,我们来聊一聊这个熟悉的名词
API,全称叫做Application Programming interface,也就是应用程序接口,API是一些预先定义的函数,我是学Java的,当我要使用这些函数的时候,便可以直接调用Java ...
- java接口构造函数_Java8自定义函数式编程接口和便捷的引用类的构造器及方法
什么是函数编程接口? 约束:抽象方法有且只有一个,即不能有多个抽象方法,在接口中覆写Object类中的public方法(如equals),不算是函数式接口的方法. 被@FunctionalInterf ...
- java同样作用的方法_Java的接口用途和方法
1, 抽象类解决不了, 根本问题是Java的类不能多继承. 因为Tiger类继承了动物Animal类的特性(例如 move() 和 drink()) , 但是严格上来将 捕猎(hunt())并不算是动 ...
- 应用程序编程接口大全_应用程序编程接口101
应用程序编程接口大全 Do apps like Uber, Pokémon Go and Zomato build their own maps to show where available car ...
- java 打印一棵树_java编程题之从上往下打印出二叉树
本文实例为大家分享了java从上往下打印出二叉树的具体代码,供大家参考,具体内容如下 import java.util.ArrayList; import java.util.Stack; /** * ...
- java批量处理数据库语句_Java项目中调用bat批处理进行多用户数据库备份
Java项目中调用bat批处理配合使用BCP进行多用户数据的备份 一.项目需求 最近项目中需要对数据库(Sql Server系列数据库)进行备份.项目中的需求不是简单的整个数据库的备份,而是根据用户来 ...
- java如何调用微信功能_Java编程调用微信分享功能示例
本文实例讲述了java编程调用微信分享功能.分享给大家供大家参考,具体如下: 这篇文章介绍如何使用java开发微信分享功能,因为工作,已经开发完成,可使用. 如果想要自定义微信的分享功能,首先在自己的 ...
最新文章
- IXmaps揭示互联网流量是否被NSA监视
- Linux下快捷键使用
- STM32那点事(1)_STM32F40_41xx启动文件详解
- 裁员之后人手却不够,马斯克和母亲只好亲自上阵帮忙了
- 基于angular实现模拟微信小程序swiper组件
- ajax提交表单,包括跳入的坑!
- 修改DevExpress中英文提示,将英文改为中文
- 一个能拖动,能调整大小,能更新bind值的vue指令-vuedragx
- 关于CityEngine导入shp数据
- SQL连接两张或多张表
- uni-app之下拉刷新与 上拉加载
- H5页面跳转关注微信公众号页面
- 酷播云html5倍速功能视频播放器,Chrome扩展推荐:一个能16倍速播放的免费视频倍速播放器...
- Python强大的自省机制
- [Jupyter Notebook]导出好看的中文PDF
- 计算机原理形考3,计算机组成原理A形考作业3参考解答
- subclipse使用详解
- 那些支持我学习与工作的良师益友
- TCPIP详解Protocol 读书笔记(三) IP协议讲解
- Vs Cood 本地代码配置(个人使用)
热门文章
- 文字转语音免费导出,语音来至讯飞
- python插值计算
- Indonesians Using Smartphones to Connect to the Internet
- Firefox火狐浏览器安装selenium IDE插件实现自动化脚本录制教程
- 10米土地利用数据按行政区下载
- 宇宙的模式:递归、分形与循环
- python3 excel数据处理_求推荐python3入门教程,适合新手的(python excel数据处理)
- 用python写一个自动生成春联的软件,打包exe
- linux中sem_wait函数,semwait sem_wait的函数说明
- R与结构方程模型(1):SEM的核心