什么是签名?服务器和APP之间的API接口和数据怎么保证安全
apk签名相当于程序的身份识别代码。
apk签名用于程序编译打包之后,手机在运行程序之前会先去验证程序的签名(可以看作类似于我们电脑上常说的md5)是否合法,只有通过了验证的文件才会被运行,所以签名软件的作用的让文件通过手机的验证为合法,不同的手机、系统是对应不同的签名的。
进行加密通讯防止API外部调用
服务器端与客户端各自会存储一个TOKEN,这个TOKEN我们为了防止反编译是用C语言来写的一个文件并做了加壳和混淆处理。
在客户端访问服务器API任何一个接口的时候,客户端需要带上一个特殊字段,这个字段就是签名signature,签名的生成方式为:
访问的接口名+时间戳+加密TOKEN 进行整体MD5,并且客户端将本地的时间戳作为明文参数提交到服务器
服务器首先会验证这两个参数:验证时间戳,如果时间误差与服务器超过正负一分钟,服务器会拒绝访问(防止被抓包重复请求服务器,正负一分钟是防止时间误差,参数可调整),
然后服务器会根据请求的API地址和提交过来的时间戳再加上本地存储的token按照MD5重新生成一个签名,并比对签名,签名一致才会通过服务器的验证,进入到下一步的API逻辑
了解规则
人们创造了社交礼仪来指引他们的交流。一个例子就是我们如何用电话和其他人交流。假设你正和朋友通话。当他们说话的时候,你知道自己应该保持安静。你知道应该允许他们有短暂的停顿。如果他们问了一个问题,然后保持沉默,你知道他们希望得到回应,现在该你说话了。
计算机有相似的礼仪,虽然它们使用的术语是“协议”。计算机协议就是一组已经被接受的规则,这些规则约束计算机如何交谈。然而,和我们的标准相比,计算机协议是非常死板的。花点时间想想这两个句子“我最喜欢的颜色是蓝色”和“蓝色是我最喜欢的颜色”。虽然它们使用的词的顺序是不同的,但是我们可以分解这两个句子并且知道它们的意思是一样的。很不幸,计算机没那么聪明。
为了让两台计算机有效的交流,服务器必须准确的知道客户端会如何排列它的信息。你可以类比一个人询问一个邮件地址。当你询问一个地址的位置时,你假设首先被告知的是街道地址,随后是城市,州,最后是邮政编码。对于地址的每一部分,你也许会有特定的期望,比如邮政编码应该只包含数字。计算机协议要想工作也需要类似的细节。
Web协议
有一个协议是几乎针对一切的:每一个协议完成不同的工作。你可能听说过一些协议:通信设备上用的蓝牙,收邮件的POP或者IMAP。
在Web上,最主要的协议是超文本传输协议,它的缩写更知名一些,HTTP。当你在浏览器中输入http://examplecom 这样的地址的时候,“http”告诉浏览器使用HTTP的规则和服务器通信。
由于HTTP在web上无处不在,因此很多公司选择它作为自己的API的底层协议。使用熟悉的协议的一个好处就是可以降低开发者的学习曲线,鼓励他们使用API。另一个好处是HTTP有几个特性对于构建一个好的API非常有用,随后我们会看到。现在让我们擦去迷雾,看一看HTTP是如何工作的吧。
1、本机DNS服务器地址设置不对,尝试使用IP地址访问网页,如果可以,那说明是本机的DNS服务器地址设置错误,其实大多网页打不开都是这个问题导致的, 解决办法:在网上邻居上右击,选择“属性”,本地连接右击,选择“属性”,找到“internet协议(tcp/ip)”,双击进去,选择“自动获取IP 地址”“自动获得DNS服务器地址”,然后“确定”即可,有时候本机的网卡驱动没有装好,不能很好的获取Ip地址,DNS服务器地址,可以使用驱动精灵或 者驱动人生进行驱动更新,重装。
2、IE浏览器设置问题或IE组件被破坏,可以使用“IE伴侣”进行修复,也可以使用360急救箱修复。
3、电脑感染病毒导致网页打不开,这也是常见的网页打不开的原因,可以使用杀毒软件全盘杀毒,杀毒完成之后,再修复系统(可以使用360急救箱或者系统盘)即可。
4、如果以上3点还是解决不了网页打不开是什么原因这个问题,可以尝试重装系统。
你应该问的是调用失败的原因吧。api调用失败的原因有可能是跨域造成的,或者是服务器关闭无法调用。
浏览器调用api的方法:首先打开浏览器,在上面输入你需要调用接口的api地址,点击访问,按下f12 查看调用结果,这里我们看到调用失败 原因是访问路径不对, 错误请查看http响应状态码,这时去问服务器人员,使用正确的地址,当浏览器返回200,表示调用成功。
点菜单file\loadtextfile\选WIN32API文本文件就可查看了。
API 是windows 系统提供给开发人员的一种接口,都是一些封装了的类或函数。在C:\WINDOWS\SYSTEM32下面的那些动态加载文件(dll/ ocx)为后缀的很多都是。
安装完MicrosoftVisualStudio60后一般附有tools工具中有API查看器APITextViewer,点菜单file\loadtextfile\选WIN32API文本文件就可查看了。
虽然在API侧可以通过在HTTPS请求头部指定特定的属性,允许跨域访问,但基于业务的必要性和安全性考虑,后端接口在上线的时候,一般也不会打开允许跨域的能力。这就为前端的本地开发环境,调用开发环境,测试环境,线上环境的API带来了障碍。
0条评论