通用接口标准规范v1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
接口标准规范
目录
接口标准规范 (1)
第1章概述 (3)
第2章基本要求 (4)
2.1信息通讯安全 (4)
2.1.1 安全评估 (4)
2.1.2 访问控制 (4)
2.1.3 防恶意代码 (4)
2.1.4 加密 (5)
2.2支持高并发 (6)
2.3可监控 (6)
2.3.1 日志全覆盖 (6)
2.4系统资源的动态扩展 (6)
2.5异常处理机制 (7)
2.6业务扩展 (7)
第3章接口通讯方式 (7)
3.1同步请求/应答方式 (7)
3.2异步请求/应答方式 (7)
3.3会话方式 (7)
3.4广播通知方式 (7)
3.5事件订阅方式 (7)
3.7可靠消息传输 (8)
第4章传输控制要求 (8)
4.1负载均衡 (8)
4.2伸缩性与动态配置管理 (8)
4.3网络调度 (9)
4.4充分理由 (9)
4.5单一职责 (9)
4.6高内聚低耦合 (9)
4.7状态及消息 (10)
4.8控制数据量 (10)
4.9禁止随意拓展参数 (10)
第5章接口技术 (10)
第6章接口规范 (11)
6.1域名规范 (11)
6.1.1 http接口 (11)
6.1.2 webservice接口 (11)
6.2 API路径规范 (11)
6.2.1 http接口 (11)
6.2.2 webservice接口 (11)
6.3版本控制规范 (12)
6.3.1 http接口 (12)
6.3.2 webservice接口 (12)
6.4 API命名规范 (12)
6.4.1 新增方法 (13)
6.4.2 删除方法 (13)
6.4.3 修改方法 (13)
6.4.4 获取方法 (13)
6.4.5 获取列表方法 (13)
6.5.1 参数需要命名规则 (14)
6.5.2 请求参数加密方法 (14)
6.6列表请求特殊规范 (15)
6.7返回数据规范 (15)
第7章接口文档规范 (16)
第8章接口管理 (16)
8.1对接口分类、编码排序。 (16)
8.2在线文档。 (16)
第1章概述
本文主要为了明确标准和规范,为服务使用方和服务提供方提供开发参考。
第2章基本要求
为了保证系统的完整性和健壮性,系统接口应满足下列基本要求:
2.1信息通讯安全
2.1.1安全评估
保证接口的自身安全,通过接口实现技术上的安全控制,做到对安全事件的“可知、可控、可预测”,是实现系统安全的一个重要基础。
2.1.2访问控制
如果客户端很频繁的请求服务器,会给给服务器造成很大的压力,需要对客户端对API的请求做一些限制。比如单位时间内同一IP只能请求多少次。
2.1.3防恶意代码
2.1.
3.1用户名sql注入
例如:用户名sql注入登录名输入:lilei'#
select *from student where user='lilei' and psd='123456'
sql语句就变成了select *from student where user='lilei'#'and psd='123456'(#/--后面的内容都会被注释掉)
2.1.
3.2跨站脚本
例如脚本攻击测试:
命令注入:PHP提供部分函数用来执行外部应用程序
异常字符测试:结束符、换行符,针对字符串,在中间插入特殊字符,比如结束符等,服务端没有进行验证
1、调用可执行的系统命令函数。
2、函数活着函数的参数控制。
3、拼接注入命令。
命令注入:PHP提供部分函数用来执行外部应用程序
异常字符测试:结束符、换行符,针对字符串,在中间插入特殊字符,比如结束符等,服务端没有进行验证
1、调用可执行的系统命令函数。
2、函数活着函数的参数控制。
3、拼接注入命令。
2.1.4加密
2.1.4.1接口调用方和接口提供方约定好统一的参数加密算法。
(加密方法参照接口规范的请求参数规范)
2.1.4.2接口调用方在调用时把加密后的_sign放在参数中去请求接口。
2.1.4.3接口提供方接到响应后,判断时间戳是不是在有效时间内(这个时间间隔根据
你的安全范围可以是10分钟,5分钟,20秒等,过期失效,前提是需要保证
接口提供方和调用方的服务器时间为准确的网络同步时间)。
2.1.4.4把参数中除了_sign以外的参数进行加密,然后把加密结果和传过来的_sign比
较,相同则执行调用请求。
2.1.4.5如果服务器和客户端的时间没有同步,可以返回错误的同时候在返回一个服务
器的当前时间,客户端接收到该错误后再请求上一个接口,时间则传服务器刚
刚返回的时间。
2.1.4.6涉及到比较重要的信息,可以用AES对value进行加密,防止抓包拉取到上传
的数据。
2.2支持高并发
根据实际情况选择合适的方式方法来实现,可动态通过集群节点进行扩展。
例如:Java的并发包提供了三个常用的并发队列实现,分别是:ArrayBlockingQueue、ConcurrentLinkedQueue 和LinkedBlockingQueue
2.3可监控
2.3.1日志全覆盖
2.3.1.1正常运行信息
2.3.1.2异常捕获信息
2.3.1.3日志打印规范
满足运维需求、日志格式统一规范。
2.4系统资源的动态扩展