计算机网络 HTTPS

news2024/11/27 13:04:14

HTTPS

HTTPS (全称:Hypertext Transfer Protocol Secure ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面。

HTTP 有一下安全性问题:

  • 使用明文进行通信,内容可能会被窃听;
  • 不验证通信方的身份,通信方的身份有可能遭遇伪装;
  • 无法证明报文的完整性,报文有可能遭篡改;

HTTPS 并不是新协议,而是 HTTP 先和 SSL(Secure Socket Layer)通信,再由 SSL 和 TCP 通信。通过使用 SSL ,HTTP 提供了加密。认证和完整性保护。
在这里插入图片描述

加密

对称秘钥(对称加密)

(Symmetric-Key Encryption),加密的加密和解密使用同一密钥。

  • 缺点:运算速度快
  • 优点:秘钥容易被获取
    在这里插入图片描述

公开密钥(非对称加密)

(Public-Key Encryption)公开密钥加密使用一对密钥用于加密和解密,分别为公开密钥和私有密钥。公开密钥所有人都可以获得,通信发送方获得接收方的公开密钥之后,就可以使用公开密钥进行加密,接收方收到通信内容后使用私有密钥解密。

  • 更为安全;
  • 运算速度慢;
    在这里插入图片描述

HTTPs 采用的加密方式

HTTPs 采用混合的加密机制,使用公开密钥加密用于传输对称密钥,之后使用对称密钥加密进行通信。
在这里插入图片描述

认证

通过使用 证书 来对通信方进行认证。
在这里插入图片描述
数字证书认证机构(CA,Certificate Authority)是客户端与服务器双方都可信赖的第三方机构。服务器的运营人员向 CA 提出公开密钥的申请,CA 在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公开密钥证书后绑定在一起。

进行 HTTPs 通信时,服务器会把证书发送给客户端,客户端取得其中的公开密钥之后,先进行验证,如果验证通过,就可以开始通信。

使用 OpenSSL 这套开源程序,每个人都可以构建一套属于自己的认证机构,从而自己给自己颁发服务器证书。浏览器在访问该服务器时,会显示“无法确认连接安全性”或“该网站的安全证书存在问题”等警告消息。

Web 攻击技术

主动攻击

直接攻击服务器,具有代表性的有 SQL 注入OS 命令注入

被动攻击

设下圈套,让用户发送有攻击代码的 HTTP 请求,那么用户发送了该 HTTP 请求之后就会泄露 Cookie 等个人信息,具有代表性的有跨站脚本攻击和跨站请求伪造

跨站脚本攻击

(Cross-Site Scripting, XSS),可以将代码注入到用户浏览的网页上,这种代码包括 HTML 和 JavaScript。利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和 Cookie 等各种内容。

危害:

  • 伪造虚假的输入表单骗取个人信息
  • 窃取用户的 Cookie 值
  • 显示伪造的文章或者图片

防范手段:

  • 过滤特殊字符:许多语言都提供了对 HTML 的过滤,例如 PHP 的 htmlentities() 或是 htmlspecialchars()、Python 的 cgi.escape()、Java 的 xssprotect (Open Source Library)
  • 指定 HTTP 的 Content-Type:通过这种方式,可以避免内容被当成 HTML 解析,比如 PHP 语言可以使用以下代码:
<?php
   header('Content-Type: text/javascript; charset=utf-8');
?>

SQL 注入攻击

概念:

服务器上的数据库运行非法的 SQL 语句。

攻击原理:

例如一个网站登录验证的 SQL 查询代码为:

strSQL = "SELECT * FROM users WHERE (name = '" + userName + "') and (pw = '"+ passWord +"');"

如果填入以下内容:

userName = "1' OR '1'='1";
passWord = "1' OR '1'='1";

那么 SQL 查询字符串为:

strSQL = "SELECT * FROM users WHERE (name = '1' OR '1'='1') and (pw = '1' OR '1'='1');"

此时无需验证通过就能执行以下查询:

strSQL = "SELECT * FROM users;"

危害

  • 数据表中的数据外泄,例如个人机密数据,账户数据,密码等。
  • 数据结构被黑客探知,得以做进一步攻击(例如 SELECT * FROM sys.tables)。
  • 数据库服务器被攻击,系统管理员账户被窜改(例如 ALTER LOGIN sa WITH PASSWORD=’xxxxxx’)。
  • 获取系统较高权限后,有可能得以在网页加入恶意链接、恶意代码以及 XSS 等。
  • 经由数据库服务器提供的操作系统支持,让黑客得以修改或控制操作系统(例如 xp_cmdshell “net stop iisadmin” 可停止服务器的 IIS 服务)。
  • 破坏硬盘数据,瘫痪全系统(例如 xp_cmdshell “FORMAT C:”)。

JAVA 防范手段

mybatis是一款优秀的持久层框架,在防止sql注入方面,mybatis启用了预编译功能,在所有的SQL执行前,都会先将SQL发送给数据库进行编译,执行时,直接替换占位符"?"即可;

mybatis在处理传参的时候,有两种处理方式,一种是#,另一种是$;
#{XXX},将传入参数都当成一个字符串,会自动加双引号,已经经过预编译,安全性高,能很大程度上防止sql注入;
${XXX},该方式则会直接将参数嵌入sql语句,未经过预编译,安全性低,无法防止sql注入;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/59045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git:多分支管理

多分支管理1. 列出分支2. 新建分支3. 删除分支4. 切换分支5. 分支合并多分支开发的特点 | 作用1. 测试&#xff1a;合并之后再在分支中工作是否主分支里面的相同文件不会更改2. 测试&#xff1a;修改编辑test分支的文件&#xff0c;最后再合并分支&#xff0c;是否是直接覆盖&a…

FT2004(D2000)开发实战之启动流程介绍

一 启动流程概述 飞腾FT2004/D2000芯片提供两种引导方案,具体如下所示: 方案一: 方案二: 方案一和方案二的区别是第二阶段的运行组件不同,方案一运行的是U-boot、方案二运行的是UEFI 那么为什么会这样的了? 答案是:飞腾FT2004/D2000芯片既可以用于嵌入式方案,也可以…

Docker中网络的使用和配置用法详解

一、单个物理机中docker网络 1.1 Docker默认网桥 安装Docker 服务默认会创建一个 docker0 网桥&#xff08;其上有一个 docker0 内部接口&#xff09;&#xff0c;它在内核层连通了其他的物理或虚拟网卡&#xff0c;这就将所有容器和本地主机都放到同一个物理网络。 使用 doc…

初识猿如意开发工具

嗨&#xff0c;大家好&#xff0c;我是异星球的小怪同志 一个想法有点乱七八糟的小怪 如果觉得对你有帮助&#xff0c;请支持一波。 希望未来可以一起学习交流。 一、初遇猿如意 第一次听说猿如意开发工具&#xff0c;于是抱着试试的心态&#xff0c;开始下载尝试。 首先是…

算法导论23章最小生成树习题—23.2练习

23.2-1对于同一个输人图&#xff0c;Kruskal 算法返回的最小生成树可以不同。这种不同来源于对边进行排序时&#xff0c;对权重相同的边进行的不同处理。证明:对于图G的每棵最小生成树T&#xff0c;都存在一种办法来对G的边进行排序&#xff0c;使得Kruskal算法所返回的最小生成…

HTML+CSS+JS网页设计期末课程大作业——上海旅游景点(10页)web前端开发技术 web课程设计 网页规划与设计

&#x1f468;‍&#x1f393;学生HTML静态网页基础水平制作&#x1f469;‍&#x1f393;&#xff0c;页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码&#xff0c;这是一个不错的旅游网页制作&#xff0c;画面精明&#xff0c;排版整洁&#xff0c;内容…

离散化【带题讲解】

全文目录&#x1f914; 原理&#x1f615; 区间和&#x1f635;‍&#x1f4ab; 建立映射&#x1f635;‍&#x1f4ab; 查找映射的下标&#x1f635;‍&#x1f4ab; 代码&#x1f914; 原理 离散化&#xff0c;把无限空间中有限的个体映射到有限的空间中去&#xff0c;以此提…

NVIDIA 安装 CUDA

名词解释&#xff1a;CUDA 是一个架构 该架构使GPU能够解决复杂的计算问题 此实战使用电脑为联想Y9000P 显卡型号为 3060 在安装 CUDA 之前需要先打开 NVIDIA 控制面板 一、准备工作 如图我这个显卡需要安装 CUDA 11.7 的版本 二、下载软件 进入官网下载 CUDA NVIDIA Deve…

解放军军官军衔(不含士兵军衔)分为3等10级

军衔&#xff0c;是国家最高权力机关授予军人的一种衔称。不同的级别有不同的军衔。对于军衔的认识&#xff0c;一些朋友或许只有片面的认识&#xff0c;下面&#xff0c;笔者就给大家来科普一下中国的军衔。 为了纪念中国人民解放军建军93周年&#xff0c;弘扬爱国主义精神&a…

被迫毕业,面试 30 家公司,终于上岸了!

大家好&#xff0c;我是君哥。今天分享一个老弟&#xff0c;被“毕业”后的求职经历。 在老东家干了 6 年&#xff0c;发展一般&#xff0c;很想出去&#xff0c;但是一直没有合适的机会&#xff0c;只好一边准备面试一边学习。让我没有想到的是&#xff0c;突然收到了“毕业”…

(1-线性回归问题)线性回归(Linear regression)Lasso回归和Ridge回归的区别

回归分析是机器学习中的经典算法之一&#xff0c;用途广泛&#xff0c;在用实际数据进行分析时&#xff0c;可能会遇到以下两种问题 过拟合, overfitting欠拟合, underfitting 在机器学习中&#xff0c;首先根据一批数据集来构建一个回归模型&#xff0c;然后在用另外一批数据…

Vue 中 (moment)操作日期的加减与展示

目录 基本语法 &#xff1a; 展示效果如下&#xff1a; 使用方式&#xff1a; 1、首先在 pacaage.json 中引入依赖 "moment": "^2.29.4" 2、然后命令行 install 安装 &#xff1a; 3、最后&#xff0c;在使用的页面引入moment 4、data 中我定义了一个…

python的Django项目中常见命令以及常错点(Linux环境下)

USE 数据库名 --------------- 切换数据库更新virtualenv库&#xff08;用于创建虚拟环境&#xff09;&#xff1a;sudo pip install -U virtualenv创建虚拟环境&#xff1a;virtualenv -p python venv(虚拟环境的目录名)激活虚拟环境&#xff1a;source venv/b…

利用Python处理excel表格,panda合并表格、合并多个excel、多个sheet

前言 记录一下&#xff0c;在使用pandas处理excel表格表格时候&#xff0c;关于分割(切分)表格这一块儿的操作。 这个系列会有三篇左右文章&#xff0c;这是第二篇&#xff0c;excel表格合并 我们常说的 excel文件&#xff0c; 在广义上&#xff0c;是指以 xls 或 xlsx 为后缀…

[1173]regexp_replace()和regexp_substr()函数的用法

文章目录REGEXP_REPLACE的使用方法命令格式&#xff1a;regexp_replace(source, pattern, replace_string, occurrence)参数说明返回值常用案例其他案例正则符号释义regexp_substr()函数的用法REGEXP_REPLACE的使用方法 命令格式&#xff1a;regexp_replace(source, pattern, r…

PF-Net基于深度学习的点云补全网络

1. 论文和代码 论文&#xff1a;https://openaccess.thecvf.com/content_CVPR_2020/papers/Huang_PF-Net_Point_Fractal_Network_for_3D_Point_Cloud_Completion_CVPR_2020_paper.pdfhttps://openaccess.thecvf.com/content_CVPR_2020/papers/Huang_PF-Net_Point_Fractal_Netw…

微信小程序开发 开启

小程序和普通网页开发的区别 1.运行环境不同 小程序是运行在微信环境中&#xff0c;而网页是运行在浏览器环境中。 2.API不同 由于运行环境不同&#xff0c;所以小程序中&#xff0c;无法调用DOM和BOM的API。 但是&#xff0c;小程序中可以调用微信环境提供的各种API&#…

Vue框架常用组件的快速构建项目Ctrl+c Ctrl+a Ctrl+v第十四课)

不管前方的路有多苦&#xff0c;只要走的方向正确&#xff0c;不管多么崎岖不平&#xff0c;都比站在原地更接近幸福。 在学习技术的道路上&#xff1a;落后又要被挨打。这是现实 常用到的组件库:下面的网站在自己空闲时间去看看 下面的资源只需要ctrlc ctrla ctrv Border 边框…

业务:财务软件之会计六要素

一、引言 会计六要素是资产、负债、所有者权益、收入、费用、利润。资产随处可见&#xff0c;比如房屋、机器设备、运输工具、仓库里的货物等。负债确认必须具备以下条件&#xff1a;负债是企业承担的现时义务&#xff1b;负债预期会导致经济利益流出企业&#xff1b;负债是由…

[附源码]计算机毕业设计JAVA学生宿舍设备报修

[附源码]计算机毕业设计JAVA学生宿舍设备报修 项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybati…