如何有效防止API的重放攻击(转自阿里云)
API重放攻击(Replay Attacks)又称重播攻击、回放攻击,这种攻击会不断恶意或欺诈性地重复一个有效的API请求。攻击者利用网络监听或者其他方式盗取API请求,进行一定的处理后,再把它重新发给认证服务器,是黑客常用的攻击方式之一。
HTTPS数据加密是否可以防止重放攻击?
否,加密可以有效防止明文数据被监听,但是却防止不了重放攻击。
使用签名防止重放攻击
使用签名之后,可以对请求的身份进行验证。但不同阻止重放攻击,即攻击者截获请求后,不对请求进行任何调整。直接使用截获的内容重新高频率发送请求。
API网关提供了一套有效防止重放攻击的方法。开启API网关的放重放,需要您使用“阿里云APP”的认证方式。通过这种签名认证方式,每个请求只能被使用一次,从而防止重放。
阿里云APP:是基于请求内容计算的数字签名,用于API网关识别用户身份。客户端调用API时,需要在请求中添加计算的签名。API网关在收到请求后会使用同样的方法计算签名,同用户计算的签名进行比较,相同则验证通过,不同则认证失败。这种认证的签名方式请参照:请求签名
在API网关的签名中,提供X-Ca-Timestamp、X-Ca-Nonce两个可选HEADER,客户端调用API时一起使用这两个参数,可以达到防止重放攻击的目的。
原理
请求所有的内容都被加入签名计算,所以请求的任何修改,都会造成签名失败。
不修改内容
X-Ca-Timestamp:发起请求的时间,可以取自机器的本地实现。当API网关收到请求时,会校验这个参数的有效性,误差不超过15分钟。
X-Ca-Nonce:这个是请求的唯一标识,一般使用UUID来标识。API网关收到这个参数后会校验这个参数的有效性,同样的值,15分钟智能被使用一次。
最新文章
- Console app 里的依赖注入及其实例生命周期
- [JS]Ext最新GPL版
- asp.net mvc4 使用 System.Web.Optimization 对javascript和style的引入、代码合并和压缩的优化(ScriptBundle,StyleBundle,Bundling and Minification )
- Nginx 简介
- 【JavaScript】常用方法
- 如何使用SAE的Storage
- Perl 中 Pod 的基本用法。
- Docker 使用指南 (一)—— 基本操作
- DevExpress控件使用系列--ASPxUploadControl(图片上传及预览)
- 安全接口 interface --显示实现接口
- JavaScript对象应用-字符串和图片对象
- Objective-C MRC多个对象相互引用的内存管理
- js中return、return true、return false的区别
- js 模板引擎 - 超级强大
- strcpy_s
- Java课设-购物车系统
- DOM操作基本用法
- ETC(电子不停车收费系统)的发展演变
- Python socketserver ftp功能简单讲解
- 在vue中使用后台提供 的token验证方式总结及使用方法
热门文章
- mAP(mean Average Precision)应用(转)
- 20190430-screen、client、offset、scroll等JS中各种宽度距离
- 转 JSON在PHP中的基本应用
- openerp学习笔记 日期时间相关操作
- bug缺陷级别定义
- VMware Workstation pro14 虚拟机下安装CentOS6.5图文教程
- 【随笔】win7下安装Apache服务器
- java多线程开发之CyclicBarrier,CountDownLatch
- uwsgi错误invalid request block size
- iostat命令——监控系统设备的IO负载情况