本篇文章给大家谈谈外部系统接口设计方案,以及系统内外接口对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
今天给各位分享外部系统接口设计方案的知识,其中也会对系统内外接口进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
接口设计怎么写?
接口设计包括三个方面:一、用户接口用来说明将向用户提供的命令和它们的语法结构,以及软件的回答信息。二、外部接口用来说明本系统同外界的所有接口的安排包括软件与硬件之间的接口、本系统与各支持软件之间的接口关系。三、内部接口用来说明本系统之内的各个系统元素之间的接口的安排
API接口安全设计方案(已实现)
网络安全方案,主要从数据加密与api接口安全两个方面考虑,数据加密https已经加密了,就不再次加密了;主要从api安全方面考虑。
在代码层面,对接口进行安全设计
一、使用token进行用户身份认证
二、使用sign防止传入参数被篡改
三、用时间戳防止暴力请求
用户身份认证的流程图如下:
具体说明如下:
1、 用户登录时,客户端请求接口,传入用户名和密文的密码
2、 后台服务对用户身份进行验证。若验证失败,则返回错误结果;若验证通过,则生成一个随机不重复的token,并将其存储在redis中,设置一个过期时间。
其中,redis的key为token,value为验证通过后获得的用户信息
3、 用户身份校验通过后,后台服务将生成的token返回客户端。
客户端请求后续其他接口时,需要带上这个token。后台服务会统一拦截接口请求,进行token有效性校验,并从中获取用户信息,供后续业务逻辑使用
为了防止中间人攻击(客户端发来的请求被第三方拦截篡改),引入参数的签名机制。
具体步骤如下:
1、客户端和服务端约定一个加密算法(或MD5摘要也可), 客户端发起请求时,将所有的非空参数按升序拼在一起,通过加密算法形成一个sign,将其放在请求头中传递给后端服务。
2、后端服务统一拦截接口请求,用接收到的非可空参数根据约定好的规则进行加密,和传入的sign值进行比较。若一致则予以放行,不一致则拒绝请求。
由于中间人不知道加密方法,也就不能伪造一个有效的sign。从而防止了中间人对请求参数的篡改。
sign机制可以防止参数被篡改,但无法防dos攻击(第三方使用正确的参数,不停请求服务器,使之无法正常提供服务)。因此,还需要引入时间戳机制。
具体的操作为:客户端在形成sign值时,除了使用所有参数和token外,再加一个发起请求时的时间戳。即
sign值来源 = 所有非空参数升序排序+token+timestamp
而后端则需要根据当前时间和sign值的时间戳进行比较,差值超过一段时间则不予放行。
若要求不高,则客户端和服务端可以仅仅使用精确到秒或分钟的时间戳,据此形成sign值来校验有效性。这样可以使一秒或一分钟内的请求是有效的。
若要求较高,则还需要约定一个解密算法,使后端服务可以从sign值中解析出发起请求的时间戳。
总结后的流程图如下:
这里还是隐藏下了。
规则:sha1(keyvalkeyval+token+timestamp+id)
例如:sha1(address33bussinessType22city111companyNamest232ringtokentimestampid)
这里新增一个id值,与token对应,传输过程中不使用,只用于加密,保证数据即使被截获,因为请求中没有id的传输,更加安全。
token身份认证;
timestamp方式防止dos攻击,防止重放,简单说就是一次接口调用,只能用一定时间,比如比对时间,60s内该次调用有效,60秒后失效;
sign签名,通过参数+token+timestamp+id固定位加密,保证参数不会被修改,调用有效;
如何提供接口给外部系统调用?
用户接口
外部系统接口设计方案,也称用户界面(user interface),有两种含义,一是指用户与操作系统交互的途径与通道(用户接口),另一种是指这种交互环境的控制操作方式,即操作环境(用户交互界面)。用户接口是一种形式,互操作性是其方法,易用性才是其目的。用户接口常分为命令接口和程序接口,两种接口的易用性支持称为环境接口,也称交互界面。
用户
(1) 操作系统的命令接口
通过在用户和操作系统之间提供高级通信来控制程序运行,用户通过输入设备发出一系列命令告诉操作系统执行所需功能,它包括
外部系统接口设计方案了键盘操作命令和作业控制命令,称为作业一级的用户接口。命令接口的两种最普遍和主要的方式是直接命令方式(命令行)和间接命令方式(命令文件)。
(2) 操作系统的程序接口
它是用户程序和操作系统之间的接口,用户程序通过它们使用系统资源及系统服务,这种接口方式通常采用若干系统调用组成。系统调用是操作系统对外提供的一批系统子功能,是一类特殊的过程调用,由机器指令完成。
(3) 操作系统的交互界面
它直接支持界面和程序界面,提供一个易用性的操作平台,使用户非常方便地寻找和使用各种命令、执行各类程序,完成各种操作。
例
外部系统接口设计方案:菜单驱动、视窗操作环境等
交互界面要求是友好的,设计时应考虑简化命令、用户响应(提示、求助)和系统后援(命令重呼、确认)等问题
接口安全设计方案
1.防伪装攻击(案例:在公共网络环境中,第三方 有意或恶意 的调用我们的接口)
2.防篡改攻击(案例:在公共网络环境中,请求头/查询字符串/内容 在传输过程被修改)
3.防重放攻击(案例:在公共网络环境中,请求被截获,稍后被重放或多次重放)
4.防数据信息泄漏(案例:截获用户登录请求,截获到账号、密码等)
关于加密算法的补充说明:
1、对请求头:把所有请求参数按照参数名ASCII码从小到大排序(即字典序,或者跟后端约定其他顺序也行,关健是要统一), 使用URL键值对的格式(即key1=value1key2=value2…)拼接成字符串stringA,如果参数的值为空则不参与签名,再将stringA拼接上与后端约定好的字符串(即加盐)得到stringB,最后对stringB进行MD5运算等到一个字符串(即签名)
2、对请求体类同上述
todo
参考:
https://juejin.cn/post/6844903536916955149
关于外部系统接口设计方案和系统内外接口的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
外部系统接口设计方案的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于系统内外接口、外部系统接口设计方案的信息别忘了在本站进行查找喔。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~