关于应用的外部接口设计心得

一、安全

    由于接口是基于HTTP的,也就是完全开放的,设计的接口是否安全,会不会被恶意调用或变为攻击入口,是接口首先要解决的问题。那么直入主题,我是这么设计的。

1、防止数据串改。(通过为接口增加以下3个参数项,验证数据的完整性)

1)_key : 这个参数不带入接口,作为调用者和服务端内部商定好的秘钥保存,不得外泄。用于计算签名token值时使用。

2)random_str:随机字符串,保证每次调用接口时要唯一性。

3)token:接口调用签名值。

token参数值的算法是使用接口参数值以字符串形式,按一个固定顺序连接起来,拼接上_key值,再进行MD5加密后所得。当服务端响应时,也按照这个算法来计算token值,然后进行对比,若一致则认为调用者的参数没有变串改。原理是,攻击者不知道_key的值,所以一旦伪造参数,token的值必然失效。

2、防止重复提交。

以上的random_str参数能有效的防止相同token值的请求出现,所以在每次请求响应时,持久化保存token值,然后进行排重查询即可。

来自为知笔记(Wiz)

时间: 2024-10-08 18:15:35

关于应用的外部接口设计心得的相关文章

算导之DP算法的设计心得

和其他的DP帖子只是灌输思考之后的结果不同,这篇是DP算法的自我体会,应该是设计DP算法的思考过程. 斯以为,这才是拿到一问题,从思考到解决最精华的部分:) 犹记得第一次看到算法导论上拿最长与最短路径来说明DP中最优子结构证明过程的一个细节的时候,心里激动不已,国内的教材完全不考虑这个,而是把伟人思考之后的东西呈现给新人. 我第一看到,心想,这就是我要的东西,包括之前的loop invariant也是如此,看国内教材时缺失而又如此渴望的东西,在算导中再次给出完美的答案. 寻找最优子结构: 1.

运营平台——效率型后台管理类产品交互设计心得

此文已由作者姚依旻授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 无论是光鲜亮丽界面可人的C类产品,还是稳重大气商务气质的B类产品,若某产品存在运营行为,则必存在一个给团队自己人用的后台,也就是运营平台.人们容易都把目光 focus 在大众用户的体验上,自己人的使用体验则优先级被放低了一些.我与运营平台朝夕相伴了一年整载,终于从一无所知到若有所悟,同时感慨时光飞速竟不察. 笔者在自己在写文章之前,也怕自己资历尚浅观点偏颇,故查阅了一些资料,得知各类运营后台的产品与交互设

慢阻肺疾病管理app——需求设计心得

需求确定已经两个星期过去了,现在回过头来写需求设计心得,能够总结出很多问题 过程: 拿到老师给的需求文档,对老师的需求进行提炼,选择自己将要实现的功能 对选择的需求进行了细分,完成需求原型.在此过程中,我们对需求的内容进行了讨论,对我们要实现的app进行了一个大致的想象,勾勒出每一个需求的呈现形式以及每一个功能的实现方式:当需求确定完,开始制作需求原型的时候,又发现了很多可以修改的地方,并且因为技术的原因,制作出来的需求原型似乎并没有完美的展现我们所期待的哪些功能,不过原型制作完需求也差不多确定

噪声收集系统——数据库设计心得

数据库设计心得 在需求分析阶段,其实数据库的设计就已经初具雏形,组内初步分析了需要哪些表来存放哪类数据,并探讨了各个表中的关键字段.但在需求分析阶段的数据库设计并不完整,只描述了部分实体,表中的属性也不能完全描述需求,数据库表间的关系没有体现,这就需要进入详细的数据库设计阶段来完善. 在数据库设计的第一阶段,还是围绕用户需求来展开工作.用户的需求在设计过程中扮演着中心角色,如果一开始对需求的分析就出现偏差,那数据库设计就很容易出现问题,好在需求分析阶段结束后我们的需求是十分明确的,项目组内根据项

创新课程管理系统数据库设计心得

因为创新课程管理系统这一个项目,是一个从无到有,没有标准可以去参考的一个项目. 这个项目专门针对该课程进行设计,所以需求的功能点很多,因此数据库有多次设计,更改再推翻重新设计再更改. 因为用户有多个类型,系统管理员,学校管理员,老师,助教,学生. 一开始的时候想把每一个都单独设计为一个表,然后登陆的时候选择身份后直接在对应的表里面进行查找即可.所以当时的用户表是如下的: 后来经过小班讨论课,又觉得可以把所有的用户全部放在一个表里面,即一个User表里面有所有用户的资料,不过这样会导致许多字段的空

手势识别项目小组——数据库设计心得

因为我们的项目是算法类,所以项目本身的需求不太明确.设计数据库的过程其实本身也是在进一步明确需求的过程. 这是我们画出的用例图: 以下是我们小组成员的数据库设计心得: JJ: 通过本次数据库设计的过程,我经历了很多也学会了很多. 首先因为课程组的要求是设计出至少15张表,而我们想要达到15张表是很困难的.我们的设计想法是先根据我们之前设计的原型先设计出一些表,根据登陆.注册.历史记录等设计了几张表.但是这些表也基本是基于用户而设计的,后来我们也寻求了指导老师的帮助,指导老师帮忙想了一个损失函数表

我的2016年终总结(PF项目框架设计心得分享 2.0rc)

在无数的日夜里,熬出了多少的黑眼圈,致勤勤恳恳工作的各位朋友与自己.每到了年末的时候总想写的什么,主要是为了回顾以往一年里到底做了什么,这便是年终总结的主要意义.在此我将要总结的是和我在技术层面上成长的一个项目,那便是开源的plain framework(简称PF),我会在这里分享一些关于程序设计的一些心得. 起源 2014年的7月左右,本着对于自己技术的不断提高,我正式将之前的plain server项目进行整理,准备写一个可以方便使用的框架.具体原因主要是发觉自己在工作中非常需要,以及技术层

【心得】编写服务端的相关设计心得及体会

最近接手公司服务端接口的相关编写工作,遇到了一些问题,提出了一些想法,讨论了一些问题,与项目经理在方案选择上有了一番争吵(当然,这种争吵是家常便饭的事儿).特此有了一些心得体会. 方法入参的设计 我们在设计程序的时候,如果使用常规的分层模型,既Controller.Service.Dao,来对项目进行分层,一定会遇到一个问题,就是不同层及之间,数据传递,即每个方法的"入参"应该怎么设计. 我曾待在一家从事银行系统开发的公司,项目有一个很大的特点,它并非使用C.S.D来进行分层开发,当然

H5移动端页面设计心得分享

去年JDC出了不少优秀的武媚娘…不,H5呢,大家都很拼,同时当然也积累了一些经验和教训,今天结合咱们的实战案例,从字体,排版,动效,音效,适配性,想法这几个方面好好聊一聊关于H5的设计,希望对同学们有帮助. 字体 排版 在有限的手机屏幕空间内,我们积累的经验告诉我们最好的效果是简单集中,最好有一个核心元素,中心元素不宜过多,突出重点为最优. 比如JDC的“拍拍十二星座实用手册”的项目,只用了最简单的图形和文字居中摆放. 以可口可乐的这个“我们在这 我们在乎”为例,相较而言,越左边的排版会越容易引