Restful API及接口安全
2024-09-07 00:59:48
一、简介
REST(Representational State Transfer,具体状态转移),是一种基于HTTP协议、URI(统一资源定位符)、JSON和XML这些现有协议与标准的,针对网络应用的设计和开发方式。
资源 + HTTP动作
系统中所有对象都被抽象为资源,资源通过URI指向。
对于资源的具体类型由HTTP协议的各种动作实现。
二、接口验证
为保证API接口的安全性,需要设计一套严格的接口验证方法,常包含以下几种:
- 接口时效性验证,即接口uri是否过期。时间戳超时机制是防御DOS攻击的有效手段。
- 接口参数完整性验证,即定义接口签名,客户端把所有的请求参数根据一个特定的算法,生成一个签名字符串,并在请求时一并发送。服务器接收到后进行验证。如果不一样,说明参数被更改过。签名机制保证了数据不会被篡改。
- 用户唯一Token。
在以上三中机制的保护下:
如果有人劫持了请求,并对请求中的参数进行了修改,签名就无法通过;
如果有人使用已经劫持的URL进行DOS攻击,服务器则会因为缓存服务器中已经存在签名或时间戳超时而拒绝服务,所以DOS攻击也是不可能的;
如果签名算法和用户名密码都暴露了,洗洗睡吧。。。
最新文章
- thinkphp 代码执行
- 【Android - 进阶】之自定义视图浅析
- leetcode:linked_list_cycle_II
- 不停的实例化对象导致OOM
- gulp使用2-gulp-less及watch和错误提示
- js函数的作用域与this指向
- Thinkphp 3.2中文章详情页的上一篇 下一篇文章功能
- Spring基础篇——通过Java注解和XML配置装配bean
- php缩放gif和png图透明背景变成黑色的解决方法_php技巧
- Python爬虫基础之UrlError
- Vue:如何在地图上添加自定义覆盖物(点)
- IDEA+Maven+各个分支代码进行合并
- ECMAScript6 入门教程记录 变量的解构赋值
- 转://Oracle 高可用技术与云基础架构
- [leetcode]27. Remove Element删除元素
- 初级PM要做什么
- 毕设之c#多线程学习(官方+转载)
- 深入出不来nodejs源码-从fs.stat方法来看node架构
- jQuery live事件说明及移除live事件方法
- TensorFlow 中的 tf.train.exponential_decay() 指数衰减法
热门文章
- KK音标
- dateTimepicker 设置默认日期的方法
- Spring Boot 定时任务 Quartz 使用教程
- cf--TV Subscriptions (Hard Version)
- 案例:WLC HA主WLC进入维护模式
- 【转载】Eclipse 最常用快捷键 (动画讲解),最简单的一些快捷键
- JavaWeb项目用浏览器打开网页出现Session Error提示的解决办法
- [2/100] MySQL在Windows下安装及一些问题
- I/O-<;File区别>;
- 七、SXSSFWorkbook生成大excle,避免内存溢出