最近部门在进行对外暴露接口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协议实现原理相关推荐

  1. html协议发展过程中,HTTP协议的演化史以及站长所受的启发

    一.HTTP协议的演化史 HTTP(HyperText Transfer Protocol)协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来 ...

  2. 以太网 TCP协议交互过程中出现丢包时的解决机制,超时重传、快速重传、SACK与DSACK

    2.7.3 以太网 TCP协议(TCP交互过程中出现丢包时的解决机制-列举部分) 参考:CSDN_TCP的重传机制_博主.Pr Young,对描述进行了整理与结合个人的理解进行编写. 一.超时重传机制 ...

  3. 招标采购过程中如何防范招标风险?

    招标采购风险是在招标采购过程中由于各种不确定性因素的出现,使招标采购的实际结果与预期目标相偏离的情况.招标源头风险防控是指在招标文件发出之前,即招标准备阶段,应采取一系列措施防范风险. 1.法定招标项 ...

  4. Fiddler中安装证书进行https协议的抓取

    Fiddler目前默认安装对http协议进行抓取但是对手机以及其他一些是https协议的通讯抓取需要配置. 首先我们要在fiddler中找到菜单栏的Tools > Options,打开" ...

  5. Laravel 中asset 函数支持https 协议

    2019独角兽企业重金招聘Python工程师标准>>> 第一步:文件.env中配置APP_URL 为https://domain(自己的域名) 第二步:打开app->Provi ...

  6. Web开发基础_Servlet学习_0011_Servlet中的多线程安全问题与Servlet运行原理

    Servlet中的多线程安全问题 Servlet运行原理 Servlet中的多线程安全问题 演示 案例演示: 工程案例目录结构 pom.xml: <project xmlns="htt ...

  7. http协议网站配置SSL证书实现全站https协议

    本文仅供学习交流使用,如侵立删! 环境 腾讯云服务器.域名 宝塔面板 申请免费SSL证书 云产品–域名与网站–SSL证书 申请免费证书 选择证书类型 选择默认的即可,别的都收费 提交资料 域名验证 域 ...

  8. 代理服务器https协议单站点开通注意事项

    在管理代理服务器,开通访问外网权限时 添加的地址的https协议或者http网站,在登陆或使用过程中跳转到https协议时会卡住. 不会出现拦截报文,页面会一直在连接没有反映. 这时有两种解决方案一 ...

  9. Delphi/XE2 使用TIdHttp控件下载Https协议服务器文件[转]

    之前的一篇博文详细描述了使用TIdhttp控件下载http协议的文件,在我项目的使用过程中发现对于下载Https协议中的文件与Http协议的文件不同,毕竟Https在HTTP协议基础上增加了SSL协议 ...

最新文章

  1. 【观点】“另类”设计模式
  2. oracle 11g 的em启动不了
  3. python类变量继承_python 类的成员及继承
  4. C++类class和结构体struct区别
  5. 未完全关闭数据库导致ORA-01012: not logged的解决
  6. 2021算法竞赛入门班第十节课【字符串】练习题
  7. php transfer-encoding: chunked,php – 使用chunked transfer encoding和gzip
  8. requests库post方法如何传json类型的data
  9. 【爬坑日记】vue中传props时默认为Boolean问题
  10. 【数学建模】基于matlab GUI最小二乘法曲线拟合【含Matlab源码 492期】
  11. java毕业设计校园博客系统mybatis+源码+调试部署+系统+数据库+lw
  12. 计算机学数字电子基础知识,什么是数字电路?数字电路基础知识
  13. 【大模型迁移 2022】Exploring Visual Prompts for Adapting Large-Scale Models
  14. 5年后、10年后,你希望自己是个什么样的人?
  15. Prime Day首日遇宕机和罢工,AWS遭网友群嘲太low?
  16. labview如何调用网络摄像头 labview 雄迈模组 需要通过labview调用在同一IP下的网络摄像头,采集图像,处理图像...
  17. c语言程序设计精髓第八章编程题
  18. Mail.Ru邮箱注册教程
  19. fabric 启动peer_Hyperledger fabric peer数据膨胀解决方案探讨
  20. 旗帜软件工作室2021年下半年闭组会议总结

热门文章

  1. java JDK 自带的 native2ascii 和它的 reverse 命令
  2. 【SQL】结构化查询语言
  3. python中日志logging模块和异常捕获traceback模块的使用
  4. VMware安装系统时“无法创建新虚拟机: 不具备执行此操作的权限“的解决方案
  5. JS 字符串编码函数(解决URL特殊字符传递问题):escape()、encodeURI()、encodeURIComponent()区别详解
  6. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(一)
  7. Json string value cannot have line breaks(解决方法)
  8. 通过谓词查找第一个元素
  9. ⼩程序中⽀持es7的async语法
  10. JDBC工具类DataSourceUtils,dao接口代码示例;