当前位置:首页 > 技术积累 > 正文内容

浅谈API接口

竹林之风9年前 (2016-03-24)技术积累3277

        API接口作为面向外部系统的门户,其背后是数据,用于隔离系统与数据,方便各异构系统整合与交互。不同系统之间的交互本质上是数据的交互,若直接访问各自的数据,必然造成高耦合、混乱和不安全,所以API也可以看作是外部系统与数据之间的中间件,用于各异构系统之间共享数据。

        设计API,首先要考虑如下几个问题:

(1)如何标识调用方;

(2)如何防止请求被撰改;

(3)如何过滤过期请求。

        对于调用方的标识,API可以为每个客户端分配一个ID和Key,ID用来指定是哪一个调用方,Key是与该调用方关联的验证码。至于防止请求被撰改,可以将关键请求参数附加上Key按一定规则排序后做MD5签名(当然可以是其它摘要生成方式,如SHA等,不论哪种方式都必须保证Key不被泄露)。判断过期/重复请求,或者说防重放攻击,可以再请求参数中加上时间戳和随机数并参与签名或加密;当客户端和服务端时间在误差之类允许调用,随机数用于调用相同接口相同参数每次生成的签名不一样,也可以做请求是否重复的判断。当然采用HTTPS保证调用方和API之间数据传输的私密性,防止被截获。

        API有多种风格,如传统的RPC、RESTFul API等;API也有基于各种协议的,如TCP、HTTP等;API的请求响应数据格式也有多种,包括XML、JSON和二进制等。


扫描二维码推送至手机访问。

版权声明:本文由久爱编程网发布,如需转载请注明出处。

本文链接:https://www.9icode.com/index.php/post/13.html

标签: ITAPI
分享给朋友:

相关文章

C#中问号“?”的用法

C#中问号“?”的用法

        在C#中问号有单问号和双问号两种场景,其中单问号就是用于条件表达式的一个三元运算符;双问号有两个用法:可空类型修饰符和空合并运算符。(1)条件表...

 通用基础表逻辑设计(二)——扩展字段

通用基础表逻辑设计(二)——扩展字段

一、扩展字段表        一个表的字段可能并非一成不变,系统的运行、需求的变化等客观条件可能会需要增加其他字段,如何在不直接修改表设计的前提下满足需求呢?该...

Java相关的一些名词

Java相关的一些名词

Java语言:一种程序设计语言,版本号从1.0到1.4,从1.5起版本号变更为5、6、……;JDK版本号、Java平台版本号类同。Java平台:1998年12月发布JDK 1.2后,Java从与平台无关的语言变成Java 2平台,分为三个版...

ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常问题解决

ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常问题解决

        ASP.NET中报“无法在已发送HTTP标头之后设置状态”异常,是因为设置Response的StatusCode之前,程序已设置响应标头。可从以...

ASP.NET网站自定义错误处理及其它安全相关

ASP.NET网站自定义错误处理及其它安全相关

        ASP.NET网站在运行过程中总是有可能报错,例如404等HTTP错误、500等程序异常。在IIS托管并报错的情况下,网站的默认行为依次是:(1).NET运行时接收并处理的部分显示.N...

从被扫描记录看网站安全应该注意的一些细节

从被扫描记录看网站安全应该注意的一些细节

1、尽可能地隐藏服务器真实IP,减少攻击目标。例如使用负载均衡、网关等作为门户,由负载均衡或网关转发到后端服务器。2、服务器必须开放的服务(除HTTP、HTTPS等为公众开放的服务外),尽可能改为其它较大的不常用的端口号,这样攻击者需要扫描...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。