《图解HTTP》知识梳理【四】

第七章 确保Web安全的HTTPS

    HTTP的缺点:

      1.通信使用明文(不加密),内容可能会被窃听   2.不验证通信方的身份,因此有可能遭遇伪装   3.无法证明报文的完整性,所以有可能已遭篡改

        HTTP使用明文(指未经过加密的报文)方式传送,在TCP/IP 协议族的工作机制里,通信内容在所有的通信线路上都有 可能遭到窥视。

        1.1  窃听相同段上的通信并非难事。只需要收集在互联网上流动的数 据包(帧)就行了。对于收集来的数据包的解析工作,可交给那 些抓包(Packet Capture),嗅探器(Sniffer)工具,Wireshark工具。

                加密处理防止被窃听

                一种方式就是将通信加密。HTTP协议中没有加密机制,但可以通过SSL(安全套接层)或TLS(安全层传输协议)的组合使用加密HTTP的通信内容。用 SSL 建立安全通信线路之后,就可以在这条线路上进行 HTTP 通信了。与 SSL 组合使用的 HTTP 被称为 HTTPS(HTTP Secure,超文本传输安全协议)或 HTTP over SSL。

                还有一种将参与通信的内容本身加密的方式。由于 HTTP 协议中 没有加密机制,那么就对 HTTP 协议传输的内容本身加密。即把 HTTP 报文里所含的内容进行加密处理。 在这种情况下,客户端需要对 HTTP 报文进行加密处理后再发送请求,不过内容仍然有被篡改的风险。

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

            虽然使用 HTTP 协议无法确定通信方,但如果使用 SSL 则可以。 SSL 不仅提供加密处理,而且还使用了一种被称为证书的手段, 可用于确定方。证书由值得信任的第三方机构颁发,用以证明服务器和客户端是 实际存在的。另外,伪造证书从技术角度来说是异常困难的一件 事。所以只要能够确认通信方(服务器或客户端)持有的证书, 即可判断通信方的真实意图。
                    
        

                    另外,客户端持有证书即可完成个人身份的确认,也可用于对 Web 网站的认证环节。

            3.1  由于 HTTP 协议无法证明通信的报文完整性,因此,在请求或响 应送出之后直到对方接收之前的这段时间内,即使请求或响应的 内容遭到篡改,也没有办法获悉。
              像这样,请求或响应在传输途中,遭攻击者拦截并篡改内容的攻 击称为中间人攻击(Man-in-the-Middle attack,MITM)。
                    

            虽然有使用 HTTP 协议确定报文完整性的方法,但事实上并不便捷、可靠。其中常用的是 MD5 和 SHA-1 等散列值校验的方法, 以及用来确认文件的数字签名方法。但是PGP 和 MD5 本身被改写的话,用户是没有办法意识到的。

            为了有效防止这些弊端,有必要使用 HTTPS。SSL 提供认证和加 密处理及摘要功能

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

            

                通常,HTTP 直接和 TCP 通信。当使用 SSL 时,则演变成先和 SSL 通 信,再由 SSL 和 TCP 通信了。简言之,所谓 HTTPS,其实就是身披 SSL 协议这层外壳的 HTTP。  

                

            在采用 SSL 后,HTTP 就拥有了 HTTPS 的加密、证书和完整性保护 这些功能。
            SSL 是独立于 HTTP 的协议,所以不光是 HTTP 协议,其他运行在应 用层的 SMTP 和 Telnet 等协议均可配合 SSL 协议使用。可以说 SSL 是 当今世界上应用最为广泛的网络安全技术。

          使用两把秘钥的公开密钥加密方式很好的解决了共享密钥加密的问题

            使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进 行加密处理,对方收到被加密的信息后,再使用自己的私有密钥 进行解密。利用这种方式,不需要发送用来解密的私有密钥,也 不必担心密钥被攻击者窃听而盗走。

                HTTPS 采用共享密钥加密和公开密钥加密两者并用的混合加密机制。若密钥能够实现安全交换,那么有可能会考虑仅使用公开 密钥加密来通信。但是公开密钥加密与共享密钥加密相比,其处理速度要慢。

                

            证明公开密钥正确性的证书:数字证书

            数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的立场上。

            数字证书认证 机构在判明提出申请者的身份之后,会对已申请的公开密钥做数字签 名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书 后绑定在一起。
            服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式通信。公钥证书也可叫做数字证书或直接称 为证书。
            接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书 上的数字签名进行验证,一旦验证通过,客户端便可明确两件事: 一,认证服务器的公开密钥的是真实有效的数字证书认证机构。二, 服务器的公开密钥是值得信赖的。
             
    

        HTTP通信

            

              HTTPS 使用 SSL(Secure Socket Layer) 和 TLS(Transport Layer Security)这两个协议。
            HTTPS 也存在一些问题,那就是当使用 SSL 时,它的处理速度会变慢。与纯文本通信相比,加密通信会消耗更多的 CPU 及内存资源。如果每次通信都加密,会消耗相当多的资源,平 摊到一台计算机上时,能够处理的请求数量必定也会随之减少。因此,如果是非敏感信息则使用 HTTP 通信,只有在包含个人信息 等敏感数据时,才利用 HTTPS 加密通信。 除此之外,想要节约购买证书的开销也是原因之一。

第八章      确认访问用户身份的认证

    HTTP/1.1使用的认证方式如下:

        1. BASIC认证(基本认证)

        2. DIGEST认证(摘要认证)

        3. SSL客户端认证

        4. FromeBase(基于表单)

        1.1  BASIC认证的认证步骤

               

        BASIC 认证使用上不够便捷灵活,且达不到多数 Web 网站期望的安全性等级,因此它并不常用。

    2.1  DIGEST认证

            DIGEST 认证同样使用质询 / 响应的方式 (challenge/response),但不会像 BASIC 认证那样直接发送明文密 码。
所谓质询响应方式是指,一开始一方会先发送认证要求给另一方,接 着使用从另一方那接收到的质询码计算生成响应码。最后将响应码返 回给对方进行认证的方式。
                    
                
    3.1  SSL认证

            为达到 SSL 客户端认证的目的,需要事先将客户端证书分发给客户端,且客户端必须安装此证书。
            在多数情况下,SSL 客户端认证不会仅依靠证书完成认证,一般会和 基于表单认证(稍后讲解)组合形成一种双因素认证(Two-factor authentication)来使用。所谓双因素认证就是指,认证过程中不仅需 要密码这一个因素,还需要申请认证者提供其他持有信息,从而作为 另一个因素,与其组合使用的认证方式。
            换言之,第一个认证因素的 SSL 客户端证书用来认证客户端计算机, 另一个认证因素的密码则用来确定这是用户本人的行为。

            通过双因素认证后,就可以确认是用户本人正在使用匹配正确的计算机访问服务器。而客户端证书需要支付一定费用才能使用

        3.1  认证多半基于表单认证

                比如 SSH 和 FTP 协议,服务器与客户端之间的认证是合乎标准规范 的,并且满足了最基本的功能需求上的安全使用级别,因此这些协议 的认证可以拿来直接使用。但是对于 Web 网站的认证功能,能够满 足其安全使用级别的标准规范并不存在,所以只好使用由 Web 应用 程序各自实现基于表单的认证方式。

                基于表单认证一般会使用Cookie来管理Session(会话),是通过服务器端的Web应用,将客户端发送过来的用户ID和密码与之前登录过的信息做匹配来进行认证的。使用Cookie来管理Session,以弥补HTTP协议中不存在的状态管理功能。

            
                    为减轻跨站脚本攻击(XSS)造成的损失,建议事先在 Cookie 内加上 httponly 属性。

第九章  基于 HTTP 的功能追加 协议
        为了尽可能实时地显示这些更新的内容,服务器上一有内容更新,就 需要直接把那些内容反馈到客户端的界面上。虽然看起来挺简单的, 但 HTTP 却无法妥善地处理好这项任务。
        使用 HTTP 协议探知服务器上是否有内容更新,就必须频繁地从客户 端到服务器端进行确认。如果服务器上没有内容更新,那么就会产生 徒劳的通信。
            

         Ajax的解决办法

            Ajax(Asynchronous JavaScript and XML, 异步JavaScript 与 XML 技 术)是一种有效利用 JavaScript 和 DOM(Document Object Model,文 档对象模型)的操作,以达到局部 Web 页面替换加载的异步通信手 段。和以前的同步通信相比,由于它只更新一部分页面,响应中传输 的数据量会因此而减少,这一优点显而易见。

            Ajax 的核心技术是名为 XMLHttpRequest 的 API,通过 JavaScript 脚本 语言的调用就能和服务器进行 HTTP 通信。借由这种手段,就能从已 加载完毕的 Web 页面上发起请求,只更新局部页面。 而利用 Ajax 实时地从服务器获取内容,有可能会导致大量请求产 生。另外,Ajax 仍未解决 HTTP 协议本身存在的问题。

         Coment的解决办法    

                一旦服务器端有内容更新了,Comet 不会让请求等待,而是直接给客 户端返回响应。这是一种通过延迟应答,模拟实现服务器端向客户端 推送(Server Push)的功能。
                通常,服务器端接收到请求,在处理完毕后就会立即返回响应,但为了实现推送功能,Comet 会先将响应置于挂起状态,当服务器端有内 容更新时,再返回该响应。因此,服务器端一旦有更新,就可以立即 反馈给客户端。
                内容上虽然可以做到实时更新,但为了保留响应,一次连接的持续时间也变长了。期间,为了维持连接会消耗更多的资源。另外,Comet 也仍未解决 HTTP 协议本身存在的问题。

        SPDY的设计与功能

            陆续出现的 Ajax 和 Comet 等提高易用性的技术,一定程度上使 HTTP 得到了改善,但 HTTP 协议本身的限制也令人有些束手无策。为了进 行根本性的改善,需要有一些协议层面上的改动。

            处于持续开发状态中的 SPDY 协议,正是为了在协议级别消除 HTTP 所遭遇的瓶颈。

            SPDY 以会话层的形式加入,考虑到安全性的问题,SPDY规定通信中使用SSL,控制对数据的流动,但还是采用 HTTP 建立通信连接。因此,可照常使用 HTTP 的 GET 和 POST 等方 法、 Cookie 以及 HTTP 报文等。
            

                使用SPDY后,HTTP协议额外获得以下功能:多路复用流、赋予请求优先级、压缩HTTP首部、推送功能、服务器提示功能。

         WebSocket的设计与功能

              一旦 Web 服务器与客户端之间建立起 WebSocket 协议的通信连接, 之后所有的通信都依靠这个专用协议进行。通信过程中可互相发送 JSON、XML、HTML 或图片等任意格式的数据。

              由于是建立在 HTTP 基础上的协议,因此连接的发起方仍是客户端, 而一旦确立 WebSocket 通信连接,不论服务器还是客户端,任意一方 都可直接向对方发送报文。

                WebSocket协议的主要特点:推送功能,减少通信量
            HTTP/2.0 的 7 项技术及讨论
                  

         Web服务器管理文件的WebDAV

                WebDAV(Web-based Distributed Authoring and Versioning,基于万维网 的分布式创作和版本控制)是一个可对 Web 服务器上的内容直接进 行文件复制、编辑等操作的分布式文件系统。它作为扩展 HTTP/1.1 的协议定义在 RFC4918。
                除了创建、删除文件等基本功能,它还具备文件创建者管理、文件编 辑过程中禁止其他用户内容覆盖的加锁功能,以及对文件内容修改的 版本控制功能。

第十章 构建 Web 内容的技术

        所谓动态 HTML(Dynamic HTML),是指使用客户端脚本语言将静 态的 HTML 内容变成动态的技术的总称。鼠标单击点开的新闻、 Google Maps 等可滚动的地图就用到了动态 HTML。 动态 HTML 技术是通过调用客户端脚本语言 JavaScript,实现对 HTML 的 Web 页面的动态改造。利用 DOM(Document Object Model,文档对象模型)可指定欲发生动态变化的 HTML 元素

        DOM 是用以操作 HTML 文档和 XML 文档的 API(Application Programming Interface,应用编程接口)。使用 DOM 可以将 HTML 内 的元素当作对象操作,如取出元素内的字符串、改变那个 CSS 的属 性等,使页面的设计发生改变。
        与Web服务器及程序协作的CGI
                在 CGI 的 作用下,程序会对请求内容做出相应的动作,比如创建 HTML 等动态内容。
                使用 CGI 的程序叫做 CGI 程序,通常是用 Perl、PHP、Ruby 和 C 等 编程语言编写而成。
            Servlet 是一种能在服务器上创建动态内容的程序。Servlet 是用 Java 语言实现的一个接口,属于面向企业级 Java(JavaEE,Java Enterprise Edition)的一部分。

                之前提及的 CGI,由于每次接到请求,程序都要跟着启动一次。因此 一旦访问量过大,Web 服务器要承担相当大的负载。而 Servlet 运行 在与 Web 服务器相同的进程中,因此受到的负载较小 。Servlet 的运行环境叫做 Web 容器或 Servlet 容器。

 

               

 

       

    数据发布的格式及语言

                XML(eXtensible Markup Language,可扩展标记语言)是一种可按应 用目标进行扩展的通用标记语言。旨在通过使用 XML,使互联网数 据共享变得更容易。

                XML 和 HTML 一样,使用标签构成树形结构,并且可自定义扩展标 签。
从 XML 文档中读取数据比起 HTML 更为简单。由于 XML 的结构基 本上都是用标签分割而成的树形结构,因此通过语法分析器 (Parser)的解析功能解析 XML 结构并取出数据元素,可更容易地对 数据进行读取。
                RSS(简易信息聚合,也叫聚合内容)和 Atom 都是发布新闻或博客日志等更新信息文档的格式的总称。两者都用到了 XML。
           
        JavaScript 衍生的轻量级易用 JSON
                JSON(JavaScript Object Notation)是一种以 JavaScript(ECMAScript)的对象表示法为基础的轻量级数据标记语言。能够处理的数据类型有 false/null/true/ 对象 / 数组 / 数字 / 字符 串,这 7 种类型。
                

第十一章  针对Web的攻击技术

        对Web应用的攻击模式有以下两种:主动攻击、被动攻击

        以服务器为目标的主动攻击

                主动攻击(active attack)是指攻击者通过直接访问 Web 应用, 把攻击代码传入的攻击模式。由于该模式是直接针对服务器上的 资源进行攻击,因此攻击者需要能够访问到那些资源。
                主动攻击模式里具有代表性的攻击是 SQL 注入攻击和 OS 命令注 入攻击。

        以服务器为目标的被动攻击

                被动攻击(passive attack)是指利用圈套策略执行攻击代码的攻 击模式。在被动攻击过程中,攻击者不直接对目标 Web 应用访 问发起攻击。(利用用户的身份攻击企业内部网络)

               

        DoS 攻击(Denial of Service attack)是一种让运行中的服务呈停止状 态的攻击。有时也叫做服务停止攻击或拒绝服务攻击。DoS 攻击的对 象不仅限于 Web 网站,还包括网络设备及服务器等。

        主要有以下两种DoS攻击方式:

        集中利用访问请求造成资源过载,资源用尽的同时,实际上服务也就呈停止状态。通过攻击安全漏洞使服务停止。
        多台计算机发起的 DoS 攻击称为 DDoS 攻击(Distributed Denial of Service attack)。DDoS 攻击通常利用那些感染病毒的计算机作为攻 击者的攻击跳板。


        

 

 


 


                 



 










 


 

 

            



 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值