优秀的编程知识分享平台

网站首页 > 技术文章 正文

HTTP协议相关知识总结(二)(http协议分析实验总结)

nanyue 2024-08-03 18:05:21 技术文章 15 ℃

HTTP协议相关知识总结(二)


HTTP首部

通用首部字段

请求首部字段

响应首部字段

一些具体的指令,其实可以看常见的指令可以去熟悉一下常用的首部字段

请求首部字段:

Accept : text/html ,appilcation/xhtml+xml ,application/xml;q=0.9,*/*;q=0.8

可通知服务器,用户代理能够处理的媒体类型及媒体类型的相对优先级。


HTTPS:

HTTP缺点:

1.通信使用明文(不加密),内容可能被窃听

2.不验证通信方的身份

3.无法验证报文的完整性,所以有可能已遭篡改

MD5和SHA-1 方法防止报文被篡改

加密处理,防止被窃听:

通信的加密(HTTP + SSL)

加密可以防止被窃听,可以将HTTP与SSL或TLS组合使用,加密HTTP的通信内容。

与SSL(Secure Socket Layer,安全套接层)的组合使用就被称为HTTPS

可以叫做(HTTP Secure)或者叫做( HTTP over SSL)

内容的加密

对HTTP报文内容进行加密

HTTP通信过程中是不会去验证请求的客户端的,任何人都可以发起请求

(有限制IP和端口)

不确认通信方,可能造成以下隐患:

  • 无法确定请求发送至目标的Web服务器是否是按真实意图返回响应的那台服务器。有可能是伪装的Web服务器
  • 无法确定响应返回到的客户端是否是按照真实意图接收响应的那个客户端。有可能是已伪装的客户端
  • 无法确定正在通信的对方是否具备访问权限。因为某些Web服务器上保存着重要的信息,只想发给特定用户通信的权限。
  • 无法判定请求是来自何方、出自何手
  • 即使是无意义的请求也会赵丹全收。无法阻止海量请求下的DoS攻击(Denial of Service,拒绝服务攻击)

SSL不仅提供加密处理,而且还使用一种被称为证书的手段,可用于确定方

HTTP+加密+认证+完整性保护 =HTTPS

HTTP协议时直接和TCP通信。当使用SSL,则演变成先和SSL通信,再由SSL和TCP通信

应用(HTTP)TCPIPHTTP协议架构

SSL采用一种公开密钥(Public-key cryptography) 的加密处理方式,解决了共享密钥加密。

公开密钥使用的是一种非对称的密钥。一把叫做私有密钥,另一把叫公开密钥。

HTTPS 采用共享密钥加密和公开密钥加密两者并用的混合加密制度

证明公开密钥正确性的证书:CA(Certicate Authority)数字认证证书 VeriSign:

数字认证机构的业务流程:

服务器的运营人员向数字证书认证机构提出公开密钥的申请

数字证书认证机构在


确认访问用户身份的认证

某些页面只想让特定的人浏览,或者干脆仅本人可见

何为认证:

核对的信息主要有:

  • 密码
  • 动态令牌:仅限本人持有的设备内显示的一次性密码
  • 数字证书
  • 生物认证
  • IC卡

HTTP/1.1 使用的认证方式:

  • BASIC 认证(基本认证)
  • DIGEST认证 (摘要认证)
  • SSL客户端认证
  • FormBase认证(基于表单认证)

401 需要认证

BASIC 认证

采用base64编码方式,并不是加密处理

DIGEST认证

与BASIC认证相同也是采用质询/响应的方式,质询码什么的不是明文

SSL客户端认证

需要使用客户端证书

基于表单认证

认证多半为基于表单认证

一般会用Cookie来管理Session

基于表单认证本身是通过服务器端的Web应用,将客户端发送过来的用户ID和密码与之前登录过的信息做匹配来进行认证的

很多都没有标准的,hash算法也很容易就泄密


基于HTTP的功能追加协议

HTTP协议有这样的 缺点


  • 一条连接只可发送一个请求
  • 请求只能从客户端开始。客户端不可以接受除响应以外的指令
  • 请求/响应首部未经压缩就发送。首部信息越多延迟越大
  • 发送冗长的首部。每次互相发送相同的首部造成浪费较多
  • 可任意选择数据压缩格式。非强制压缩发送。

当你遇到要实时更新时,会发现十分之痛苦

Y运用Ajax(Asybchronous Javascript and XML)异步通信技术,它更新页面的一部分内容,响应传输的数据会因此而减少。

核心技术在于:XMLHttpRequest 的API

异步通信&同步通信

Comet的解决方法

一旦服务器有内容更新,Comet不会让请求等待,而是直接给客户端返回响应。这是一种延迟应答,模拟实现服务器向客户端推送功能。

一次连接的持续时间变长

Ajax 、Comet仅仅是改善了一下性能,并不能改变HTTP协议劣势。

出现了SPDY协议

  • SPDY以会话层的形式加入,控制对数据的流动,但还是采用HTTP建立通信连接,还是POST/GET等
  • 改进的方面主要有:
  • 多路复用流
  • 赋予请求优先级
  • 压缩HTTP首部
  • 推送功能
  • 服务器提示功能

WebSocket网络技术解决了HTTP瓶颈问题,是HTML5标准的一部分

WebSocket :即Web浏览器与Web服务器之间全双工通信标准。其中

功能特点:

  • 推送功能
  • 减少通信量
  • 握手~请求
  • 握手~响应

构建Web内容的技术

HTML

CSS

动态HTML(Javascript + DOM)

与Web 服务器及程序协作的CGI

CGI(Common Gateway Interface,通用网关接口):Web服务器在接收到客户端发送过来的请求后转发给程序的一组机制。

数据发布的格式及语言:

可扩展标记语言

XML(eXtensible Markup Language,可扩展标记语言)

JavaScript 衍生的轻量级易用JSON

JSON(JavaScript Object Notation) 是一种以JavaScript 的对象表示法为基础的轻量级数据标记语言。

能够处理的数据类型

false/null/true/对象/数组/数字/字符串


针对Web的攻击技术

大多数的攻击肯定是针对Web站点

因输出值转义不完全引发的安全漏洞

客户端的验证

Web应用端的验证

跨站脚本攻击榆树被动攻击模式

对用户的Cookie的窃取攻击

SQL注入攻击

危机:

  • 非法查看或篡改数据库中的数据
  • 规避认证
  • 执行和数据库服务器业务关联的程序等

OS注入攻击

HTTP首部注入攻击(%0D%0A)

  • 设置任何Cookie信息
  • 重定向至任意URL
  • 显示任意主体(HTTP响应截断攻击)

邮件首部注入攻击

目录遍历攻击

远程文件包含漏洞

因设置或设计上的缺陷引发的安全漏洞

最近发表
标签列表