web后端http协议使用过程中安全防范及https协议实现原理
最近部门在进行对外暴露接口http协议向https协议转换
上大学时,学习过计算机网络,包括https协议,https是在http(HyperText Transfer Protocol)协议的基础上,增加了ssl(Secure Sockets Layer)
http协议
http协议在网络上明文传输,容易被他人盗取信息,篡改信息等,在http协议上可以增加一些防护措施及实践中常用的一些技巧;
1.页面及服务端请求时添加时间戳;
页面请求:在http get请求时添加随机数,可以是时间等信息,防止浏览器缓存造成时间不一致;
服务端响应:服务响应时,对传递过来的时间戳进行校验,一般会有个时间限制,比如2分钟等,这种方式能够避免重放攻击,防止有恶意用户截取到相关的数据之后,去伪造请求,获取服务端有价值数据(此部分需要结合特征值一起使用);
2.服务端调用需要携带应用标识及传递的签名;
后端服务需要知道请求服务的来源,很多服务没有标识来源,比如线上流量过大,有恶意用户去刷接口时,需要知道调用来源;
在服务接入时,需要约定一套校验的流程,比如计算 MD5(传递参数,salt),将算法提供给接入方,服务端对传递过来的参数进行校验;
虽然以上两种方式能够减少信息被篡改的几率,不过重要的信息交互时务必使用https协议
好了,以上是http协议日常互联网应用开发时,需要注意的地方;
https协议
为什么使用https协议?
https协议能够屏蔽传递信息的细节,不对外暴露传递的参数,客户端与服务端信息加密传递;
https协议具体怎么加密呢?
我们都知道,加密的方式分为对称加密和非对称加密;
对称加密:加密和解密所使用的秘钥都是相同的;
具体应用:电报
存在问题,秘钥一旦丢失,所传递的加密内容都将被他人获取;
加密方式简单,加密解密效率较高;
非对称加密:加密和解密所使用的秘钥不同
加密更相对于对称加密更加安全,但加密解密时会耗费更大的代价;
回到https协议上来,https协议时如何去工作的呢,https使用了非对称加密的方式
具体步骤:
1.网站申请CA证书之后,将证书部署在nginx服务器,或直接部署在web应用服务器中;
2.用户请求https域名,本地没有证书的话需要去CA证书机构拿客户端证书;
3.每次请求,用户随意生成一个对称加密的秘钥,通过客户端的ca证书将秘钥加密后传递给服务端,服务端使用服务端ca证书进行解密,获得客户端传递的秘钥;
该步骤使用非对称加密传递对称加密的秘钥;
为什么这么做呢?之前已经提到了,虽然可以直接用非对称加密对所有数据传递进行加密,但是该方法效率较低,传输的数据量大时,会造成服务器计算压力;
4.客户端和服务端后边每次交互都使用客户端生成的秘钥,进行对称加密和解密;
客户端生成的秘钥是通过非对称加密传递的,中间即使有人拿到了加密串,也是无法解析;
这里的非对称加密是由算法保证了安全性,至今没有一个有效的算法能够解决大数分解质数的问题;
至此,客户端和服务端已经能愉快的使用https安全的进行数据交互了;
web后端http协议使用过程中安全防范及https协议实现原理相关推荐
- html协议发展过程中,HTTP协议的演化史以及站长所受的启发
一.HTTP协议的演化史 HTTP(HyperText Transfer Protocol)协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来 ...
- 以太网 TCP协议交互过程中出现丢包时的解决机制,超时重传、快速重传、SACK与DSACK
2.7.3 以太网 TCP协议(TCP交互过程中出现丢包时的解决机制-列举部分) 参考:CSDN_TCP的重传机制_博主.Pr Young,对描述进行了整理与结合个人的理解进行编写. 一.超时重传机制 ...
- 招标采购过程中如何防范招标风险?
招标采购风险是在招标采购过程中由于各种不确定性因素的出现,使招标采购的实际结果与预期目标相偏离的情况.招标源头风险防控是指在招标文件发出之前,即招标准备阶段,应采取一系列措施防范风险. 1.法定招标项 ...
- Fiddler中安装证书进行https协议的抓取
Fiddler目前默认安装对http协议进行抓取但是对手机以及其他一些是https协议的通讯抓取需要配置. 首先我们要在fiddler中找到菜单栏的Tools > Options,打开" ...
- Laravel 中asset 函数支持https 协议
2019独角兽企业重金招聘Python工程师标准>>> 第一步:文件.env中配置APP_URL 为https://domain(自己的域名) 第二步:打开app->Provi ...
- Web开发基础_Servlet学习_0011_Servlet中的多线程安全问题与Servlet运行原理
Servlet中的多线程安全问题 Servlet运行原理 Servlet中的多线程安全问题 演示 案例演示: 工程案例目录结构 pom.xml: <project xmlns="htt ...
- http协议网站配置SSL证书实现全站https协议
本文仅供学习交流使用,如侵立删! 环境 腾讯云服务器.域名 宝塔面板 申请免费SSL证书 云产品–域名与网站–SSL证书 申请免费证书 选择证书类型 选择默认的即可,别的都收费 提交资料 域名验证 域 ...
- 代理服务器https协议单站点开通注意事项
在管理代理服务器,开通访问外网权限时 添加的地址的https协议或者http网站,在登陆或使用过程中跳转到https协议时会卡住. 不会出现拦截报文,页面会一直在连接没有反映. 这时有两种解决方案一 ...
- Delphi/XE2 使用TIdHttp控件下载Https协议服务器文件[转]
之前的一篇博文详细描述了使用TIdhttp控件下载http协议的文件,在我项目的使用过程中发现对于下载Https协议中的文件与Http协议的文件不同,毕竟Https在HTTP协议基础上增加了SSL协议 ...
最新文章
- 【观点】“另类”设计模式
- oracle 11g 的em启动不了
- python类变量继承_python 类的成员及继承
- C++类class和结构体struct区别
- 未完全关闭数据库导致ORA-01012: not logged的解决
- 2021算法竞赛入门班第十节课【字符串】练习题
- php transfer-encoding: chunked,php – 使用chunked transfer encoding和gzip
- requests库post方法如何传json类型的data
- 【爬坑日记】vue中传props时默认为Boolean问题
- 【数学建模】基于matlab GUI最小二乘法曲线拟合【含Matlab源码 492期】
- java毕业设计校园博客系统mybatis+源码+调试部署+系统+数据库+lw
- 计算机学数字电子基础知识,什么是数字电路?数字电路基础知识
- 【大模型迁移 2022】Exploring Visual Prompts for Adapting Large-Scale Models
- 5年后、10年后,你希望自己是个什么样的人?
- Prime Day首日遇宕机和罢工,AWS遭网友群嘲太low?
- labview如何调用网络摄像头 labview 雄迈模组 需要通过labview调用在同一IP下的网络摄像头,采集图像,处理图像...
- c语言程序设计精髓第八章编程题
- Mail.Ru邮箱注册教程
- fabric 启动peer_Hyperledger fabric peer数据膨胀解决方案探讨
- 旗帜软件工作室2021年下半年闭组会议总结
热门文章
- java JDK 自带的 native2ascii 和它的 reverse 命令
- 【SQL】结构化查询语言
- python中日志logging模块和异常捕获traceback模块的使用
- VMware安装系统时“无法创建新虚拟机: 不具备执行此操作的权限“的解决方案
- JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
- JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一)
- Json string value cannot have line breaks(解决方法)
- 通过谓词查找第一个元素
- ⼩程序中⽀持es7的async语法
- JDBC工具类DataSourceUtils,dao接口代码示例;