其实就是将请求url按照上述的规则进行同样的操作,计算得到参数的签名值,然后和参数中传递的sign值进行对比,如果一致则校验通过,否则校验不通过 。
对请求和响应进行加解密
可能有人会问,都使用了https了,为什么还要对请求和响应再做一次加解密,因为有些第三方抓包工具,例如Charles 通过某些手段是可以抓取https的明文的,因此对一些敏感数据,我们需要进行加密处理,常见的加解密方式有AES 对成加密方式和RSA非对成方式,至于如何运用,可以参考https的原理,有点复杂,不过可以简单分成如下几步:
文章插图

文章插图
1.服务器端有一个密钥对,即公钥和私钥,是用来进行非对称加密使用的,服务器端保存着私钥,不能将其泄露,公钥可以发送给任何人 。
2.服务器将自己的公钥发送给客户端 。
3.客户端收到服务器端的公钥之后,会对公钥进行检查,验证其合法性,如果发现发现公钥有问题,那么HTTPS传输就无法继续 。严格的说,这里应该是验证服务器发送的数字证书的合法性,关于客户端如何验证数字证书的合法性,下文会进行说明 。如果公钥合格,那么客户端会生成一个随机值,这个随机值就是用于进行对称加密的密钥,我们将该密钥称之为client key,即客户端密钥,这样在概念上和服务器端的密钥容易进行区分 。然后用服务器的公钥对客户端密钥进行非对称加密,这样客户端密钥就变成密文了,至此,HTTPS中的第一次HTTP请求结束 。
4.客户端会发起HTTPS中的第二个HTTP请求,将加密之后的客户端密钥发送给服务器 。
5.服务器接收到客户端发来的密文之后,会用自己的私钥对其进行非对称解密,解密之后的明文就是客户端密钥,然后用客户端密钥对数据进行对称加密,这样数据就变成了密文 。
6.然后服务器将加密后的密文发送给客户端 。
7.客户端收到服务器发送来的密文,用客户端密钥对其进行对称解密,得到服务器发送的数据 。
总结
前后端的交互如果做到以上使用https,对请求加解密以及对请求参数进行验签,基本上能解决大部分问题,但除此之外我们还应该做到对每个接口进行身份校验,确保该接口只能由特定的用户访问,或者该笔数据只能由特定的用户去进行修改 。
推荐阅读
- 前端 Webpack 工程化的最佳实践
- 女性这样做,不仅提前5年退休,还有7000补贴领
- 买排骨,“前排”“中排”“后排”差别很大,弄懂了,少花冤枉钱
- 淘宝直播可以提前多久开播 淘宝直播一天最多能播几个小时
- 喝黄茶的最佳时间黄茶饭前还是饭后喝,细说最适合喝黄茶的5类人
- 前端性能优化到底在优化什么?怎么优化
- Tomcat中一种半通用回显方法
- 一文搞懂HTTP协议的核心知识点
- 黄茶的前景黄茶市场价格多少钱斤,简述黄茶的起源史
- 法国红酒品牌排名前五
