软件系统接口设计方案(软件系统的接口设计)

网友投稿 1052 2023-01-01


本篇文章给大家谈谈软件系统接口设计方案,以及软件系统的接口设计对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享软件系统接口设计方案的知识,其中也会对软件系统的接口设计进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

怎么写 App 接口设计方案

编写接口设计方案头部必定是目录,要是在目录和正文中间插入本方案总设计师姓名和他的手机邮件等联系方式方便双方项目上对接自是极好的
一阐述面向的用户群和平台有哪些;
二要达到怎样的设计目标,如并发量,延迟等;
三设计的系统接口可能会有哪些问题和风险,基于以上,在进行设计过程中将会采用那些技术手段;
四是阐述一些接口命名规范,字段和数据长度限制规范,最大连接时间等;
在后面概述接口按业务或非业务分为哪几大块,订单一块,账户管理一块,日志一块,文件/图片一块;
接下来详述每块分别有哪些接口,具体如何定义的等等;
最后在阐述下整个系统与哪些第三方会有交集,这些接口提供方的公司名字?与这些公司的技术联系人是谁,联系方式是什么,与他们的数据通信方式是什么,他们的访问地址在何处,经过一系列测试后发现的延迟情况,安全问题等等,我方是如何解决的,在本次设计的接口中有哪些用到了这个第三方接口;

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固定位加密,保证参数不会被修改,调用有效;

软件设计包括哪两个阶段?

软件设计包括的两个阶段:

1、对软件的全局观点。系统通过逐步求精使得设计陈述逐渐接近源代码。这里有两个基本步骤,第一步是初步设计,关注于如何将需求转换成数据和软件框架。

2、详细设计,关注于将框架逐步求精细化为具体的数据结构和软件的算法表达。发生中的设计行为、数据、算法和程序设计都需要由现代程序所需的界面设计这一清晰的行为来结合起来。界面设计建立程序布局和人机交互机制。贯穿设计过程的质量由一系列的正式技术评定或设计排演来评价。

软件设计是从软件需求规格说明书出发,根据需求分析阶段确定的功能设计软件系统的整体结构、划分功能模块、确定每个模块的实现算法以及编写具体的代码,形成软件的具体设计方案。

软件设计是把许多事物和问题抽象起来,并且抽象它们不同的层次和角度。将问题或事物分解并模块化使得解决问题变得容易,分解的越细模块数量也就越多,它的副作用就是使得设计者考虑更多的模块之间耦合度的情况。

扩展资料:

设计要素:

软件设计包括软件的结构设计,数据设计,接口设计和过程设计。

1、结构设计:定义软件系统各主要部件之间的关系。

2、数据设计:将模型转换成数据结构的定义。

3、接口设计:软件内部,软件和操作系统间以及软件和人之间如何通信。

4、过程设计:系统结构部件转换成软件的过程描述。

参考资料来源:百度百科-软件设计

关于软件系统接口设计方案和软件系统的接口设计的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 软件系统接口设计方案的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于软件系统的接口设计、软件系统接口设计方案的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:基于SpringBoot+Redis的Session共享与单点登录详解
下一篇:浅析java移位符的具体使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~