相信很多人都知道网络协议有http和https,https是在http上层新增一个套接层SSL,从而对传输的数据进行非对称加密,从而实现数据安全,避免数据在请求过程中被黑客窃听、篡改等问题;
但是这些前提条件都是基于网络传输过程中,依然还是存在不安全的地方,因为在网络通信中,采用代理进行网络通信,那么,在数据传输过程中,代理方是可以获取到请求的数据的。
对于这种做法,通常的做法是对请求数据进行加密处理,然后由服务端对数据进行解密;
但是对请求数据进行加密处理,在很多场景下是一个很复杂的工作,我们可以打开京东商城,通过控制台可以看到,在京东商城里面,很多请求的数据也都是明文传输的,并没有进行加密处理;
基于这种业务的场景下,在理解了HTTPS的实现原理基础上,我们可以将https原理中的一部分,自己来实现,可以很大程度上解决在代理层的数据安全问题;
这时候,可以通过数据完整性校验来实现数据的安全传输,确保A将数据发送给B的时候,B收到的数据是完整的没有被中间商篡改的;
在这里我画了一张图来描述数据完整性校验以及重放攻击的防御示例图,如下:

通过这种方式,可以解决很多安全问题;近两天我通过代码实现了一些上图的流程,流程都是没有问题的;
代码就不粘贴了,理解了这个实现的原理后,再通过代码实现其实是挺简单的了;

近期挺不顺的~
晚安~
文章转载自加耀,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




