当前位置: 首页 > news >正文

19、XSS——HTTP协议安全

文章目录

  • 一、Weak Session IDs(弱会话IDs)
  • 二、HTTP协议存在的安全问题
  • 三、HTTPS协议
    • 3.1 HTTP和HTTPS的区别
    • 3.2 SSL协议组成

一、Weak Session IDs(弱会话IDs)

  当用户登录后,在服务器就会创建一个会话(Session),叫做会话控制,再访问页面的时候就不用登录,只需要携带Session去访问。

  Session ID作为特定用户访问站点所需要的唯一内容。如果能够就算或轻易猜到该Session ID,则攻击者将可以轻易获取访问权限,无需登录直接进入特定用户界面,进而执行其他操作。

  用户访问服务器的时候,在服务器端会创建一个新的会话(Session),会话中会保存用户的状态和相关信息,用于标识用户。服务器端维护所有在线用户的Session,此时的认证,只需要知道是哪个用户在浏览当前的页面即可。为了告诉服务器应该使用哪个Session,浏览器需要把当前用户持有的Session ID告知服务器。用户拿到Session ID就会加密后保存在Cookie上,之后只要cookie随着http请求发送服务器,服务器就知道你是谁了。Session ID一旦在生命周期内被窃取,就等于账户失窃。

  Session利用的实质:由于Session ID是用户登录之后持有的唯一认证凭证,因此黑客不需要再攻击登录过程(比如密码),就可以轻易获取访问权限,无需登录密码直接进入特定用户界面,进而查找其他漏洞如XSS、文件上传等。
  Session劫持:就是一种通过窃取用户Session ID,使用Session ID登录进目标账户的攻击方法,此时攻击者实际上是使用了目标账户的有效Session。如果Session ID是保护在Cookie中,则这种攻击可以称为Cookie劫持。Session ID还可以保存在URL中,作为一个请求的一个参数,但是这种方式的安全性难以经受考验。

二、HTTP协议存在的安全问题

  • 通讯使用明文,未加密,并且TCP/IP协议是可能会被窃听的网络,所以通讯内容可能会被窃听;
  • 没有验证通讯方的身份,可能会被冒充;
  • 没有办法验证报文的完整性,可能会被篡改。

三、HTTPS协议

  超文本传输安全协议(HyperText Transfer Protocol Secure,缩写HTTPS)是一种通过计算机网络进行安全通信的传输协议,简单来说就是HTTP的安全版

  HTTP直接和TCP通信,但是HTTPS是HTTP先和SSL协议通信,然后SSL协议再和TCP通信。
在这里插入图片描述

3.1 HTTP和HTTPS的区别

  • HTTPS协议需要到CA申请证书,一般免费证书很少,需要年费;
  • HTTP是超文本传输协议,信息是明文传输;HTTPS则是具有安全性的SSL加密传输协议;
  • HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,HTTP用80端口,HTTPS用443端口;
  • HTTP的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。

3.2 SSL协议组成

  1. 记录协议(Record Protocol)
  2. 握手协议(Handshake Protocol)
  3. 警告协议(Alert Protocol)
  4. 密码规范改变协议
    在这里插入图片描述
      SSL协议主要分为两层,其中底层是SSL记录协议层,高层是SSL握手协议层。最重要的是记录协议握手协议
      SSL记录协议层的作用是为高层协议提供基本的安全服务。SSL记录协议针对HTTP协议进行了特别的设计,使得超文本的传输协议HTTP能够在SSL运动。记录封装各种高层协议,具体实施压缩、解压缩、加密、解密、计算和校验MAC等与安全有关的操作。
      SSL握手协议层的这些协议用于管理信息的交换,允许应用协议传送数据之间相互验证,协商加密算法和生成密钥等。SSL握手协议的作用是协调客户与服务器的状态,使双方能够达到状态的同步。

HTTP协议三次握手
在这里插入图片描述
HTTPS通信过程
在这里插入图片描述

http://www.lryc.cn/news/254974.html

相关文章:

  • 深圳锐杰金融:用金融力量守护社区健康
  • python对py文件加密
  • Thymeleaf生成pdf表格合并单元格描边不显示
  • C# Solidworks二次开发:三种获取SW设计结构树的方法-第二讲
  • 分布式搜索引擎03
  • flex布局的flex为1到底是什么
  • class050 双指针技巧与相关题目【算法】
  • 计算机操作系统4
  • 【ASP.NET CORE】EntityFrameworkCore 数据迁移
  • 说说React jsx转换成真实DOM的过程?
  • MongoDB知识总结
  • 【LeeCode】1.两数之和
  • Python 作业答疑_6.15~6.18
  • Diffusion 公式推导
  • 【C语言快速学习基础篇】之一基础类型、进制转换、数据位宽
  • 使用GPT-4V解决Pycharm设置问题
  • qt 安装
  • 【论文合集】在非欧空间中的图嵌入方法(Graph Embedding in Non-Euclidean Space)
  • 锐捷EWEB网管系统 RCE漏洞复现
  • Clickhouse在货品标签场景的应用
  • CentOS 7 lvm 更换坏盘操作步骤小记 —— 筑梦之路
  • zabbix的自动发现和注册、proxy代理和SNMP监控
  • 以Hub为中心节点的网络技术探析
  • 百度推送收录工具-免费的各大搜索引擎推送工具
  • 物流实时数仓ODS层——Mysql到Kafka
  • 奇迹mu 架设过程中可能会出现的问题及解决办法
  • IDC MarketScape2023年分布式数据库报告:OceanBase位列“领导者”类别,产品能力突出
  • Docker创建mqtt容器mosquitto
  • 运维知识点-SQLServer/mssql
  • Reactor实战,创建一个简单的单线程Reactor(理解了就相当于理解了多线程的Reactor)