图解HTTP
内容提要
- HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面
- 前端工程师分析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器
译者序
- 一本是《HTTP权威指南》,但其厚度令人望而生畏;另一本是《TCP/IP详解,卷1》,内容艰涩难懂,学习难度较大。
- 对基础及核心部分的深入学习是成为一名专业技术人员的前提,以不变应万变才是立足之本。
- 基于HTTP 1.1标准讲解通信过程,包括HTTP方法、协议格式、报文结构、首部字段、状态码等的具体含义,还分别讲解HTTP通信过程中代理、网关、隧道等的作用。接着介绍SPDY、WebSocket、WebDAV等HTTP的扩展功能。
前言
- Google在2005年推出了地图服务Google Maps,很多人看到这一Web应用程序的界面后感到十分震惊。
- 不再囿于HTTP/1.1版本的制约,你也能开发出Google Maps那样的应用程序。
- Web应用程序的开发者,还面向使用Web的软件开发者、Web风险评估的安全工程师、前端工程师以及Web使用者等与Web相关
致谢
- 不感兴趣的领域我不了解,但我擅长的领域就放心交给我吧!
1.1 使用HTTP协议访问Web
- 使用HTTP协议访问Web
- HTTP(HyperText Transfer Protocol,超文本传输协议)
1.2 HTTP的诞生
- 现在已提出了3项WWW构建技术,分别是:把SGML(Standard Generalized Markup Language,标准通用标记语言)作为页面的文本标记语言的HTML(HyperText Markup Language,超文本标记语言);作为文档传递协议的HTTP;指定文档所在地址的URL(Uniform Resource Locator,统一资源定位符)。
- 1993年1月,现代浏览器的祖先NCSA(National Center for Supercomputer Applications,美国国家超级计算机应用中心)研发的Mosaic问世
- 从1995年左右起,微软公司与网景通信公司之间爆发的浏览器大战愈演愈烈。两家公司都各自对HTML做了扩展,于是导致在写HTML页面时,必须考虑兼容他们两家公司的浏览器。时至今日,这个问题仍令那些写前端页面的工程师感到棘手。
- 1997年1月公布的HTTP/1.1是目前主流的HTTP协议版本。当初的标准是RFC2068
1.3 网络基础TCP/IP
- TCP/IP协议族按层次分别分为以下4层:应用层、传输层、网络层和数据链路层。
1.4 与HTTP关系密切的协议:IP、TCP和DNS
- IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中两个重要的条件是IP地址和MAC地址(Media Access Control Address)。
- 发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发送端再回传一个带ACK标志的数据包,代表“握手”结束。
1.5 负责域名解析的DNS服务
- DNS(Domain Name System)服务是和HTTP协议一样位于应用层的协议。它提供域名到IP地址之间的解析服务。
1.7 URI和URL
- 与URI(统一资源标识符)相比,我们更熟悉URL(Uniform Resource Locator,统一资源定位符)
- URI用字符串标识某一互联网资源,而URL表示资源的地点(互联网上所处的位置)。可见URL是URI的子集。
2.1 HTTP协议用于客户端和服务器端之间的通信
- 请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端。
2.2 通过请求和响应的交换达成通信
- HTTP协议规定,请求从客户端发出,最后服务器端响应该请求并返回。换句话说,肯定是先从客户端开始建立通信的,服务器端在没有接收到请求之前不会发送响应。
- 响应报文基本上由协议版本、状态码(表示请求成功或失败的数字代码)、用以解释状态码的原因短语、可选的响应首部字段以及实体主体构成。
2.3 HTTP是不保存状态的协议
- HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议自身不对请求和响应之间的通信状态进行保存。
2.4 请求URI定位资源
- 除此之外,如果不是访问特定资源而是对服务器本身发起请求,可以用一个*来代替请求URI。下面这个例子是查询HTTP服务器端支持的HTTP方法种类。
2.5 告知服务器意图的HTTP方法
- GET方法用来请求访问已被URI识别的资源。指定的资源经服务器端解析后返回响应内容。
- CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。主要使用SSL(Secure Sockets Layer,安全套接层)和TLS(Transport Layer Security,传输层安全)协议把通信内容加密后经网络隧道传输。
2.6 使用方法下达命令
- 向请求URI指定的资源发送请求报文时,采用称为方法的命令。
2.8 使用Cookie的状态管理
- Cookie会根据从服务器端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入Cookie值后发送出去。
3.1 HTTP报文
- HTTP报文大致可分为报文首部和报文主体两块。两者由最初出现的空行(CR+LF)来划分。通常,并不一定要有报文主体。
3.2 请求报文及响应报文的结构
- 首部字段 包含表示请求和响应的各种条件和属性的各类首部。 一般有4种首部,分别是:通用首部、请求首部、响应首部和实体首部。
3.3 编码提升传输速率
- 这种把实体主体分块的功能称为分块传输编码(Chunked Transfer Coding)。
3.4 发送多种数据的多部分对象集合
- MIME(Multipurpose Internet Mail Extensions,多用途因特网邮件扩展)机制,它允许邮件处理文本、图片、视频等多个不同类型的数据。
3.5 获取部分内容的范围请求
- 指定范围发送的请求叫做范围请求(Range Request)
3.6 内容协商返回最合适的内容
- 当浏览器的默认语言为英语或中文,访问相同URI的Web页面时,则会显示对应的英语版或中文版的Web页面。这样的机制称为内容协商(Content Negotiation)。
4.1 状态码告知从服务器端返回的请求结果
- 状态码的职责是当客户端向服务器端发送请求时,描述返回的请求结果。
4.2 2XX成功
- 该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分
4.3 3XX重定向
- 当301、302、303响应状态码返回时,几乎所有的浏览器都会把POST改成GET,并删除请求报文内的主体,之后请求会自动再次发送。 301、302标准是禁止将POST方法改变成GET方法的,但实际使用时大家都会这么做。
4.4 4XX客户端错误
- 该状态码表示请求报文中存在语法错误。当错误发生时,需修改请求的内容后再次发送请求。另外,浏览器会像200 OK一样对待该状态码。
4.5 5XX服务器错误
- 该状态码表明服务器端在执行请求时发生了错误。也有可能是Web应用存在的bug或某些临时的故障
5.1 用单台虚拟主机实现多个域名
- 在相同的IP地址下,由于虚拟主机可以寄存多个不同主机名和域名的Web网站,因此在发送HTTP请求时,必须在Host首部内完整指定主机名或域名的URI。
5.2 通信数据转发程序:代理、网关、隧道
- 网关是转发其他服务器通信数据的服务器,接收从客户端发送来的请求时,它就像自己拥有资源的源服务器一样对请求进行处理。有时客户端可能都不会察觉,自己的通信目标是一个网关。
5.3 保存资源的缓存
- 缓存是指代理服务器或客户端本地磁盘内保存的资源副本。利用缓存可减少对源服务器的访问,因此也就节省了通信流量和通信时间。
- FTP(File Transfer Protocol)传输文件时使用的协议
6.1 HTTP报文首部
- 在请求中,HTTP报文由方法、URI、HTTP版本、HTTP首部字段等部分构成。
- HTTP响应报文在响应中,HTTP报文由HTTP版本、状态码(数字和原因短语)、HTTP首部字段3部分构成。
6.2 HTTP首部字段
- 使用首部字段是为了给浏览器和服务器提供报文主体大小、所使用的语言、认证信息等内容。
- 当HTTP报文首部中出现了两个或两个以上具有相同首部字段名时会怎么样?这种情况在规范内尚未明确,根据浏览器内部处理逻辑的不同,结果可能并不一致。有些浏览器会优先处理第一次出现的首部字段,而有些则会优先处理最后出现的首部字段。
6.3 HTTP/1.1 通用首部字段
- 通过指定首部字段Cache-Control的指令,就能操作缓存的工作机制。
- 使用首部字段Via是为了追踪客户端与服务器之间的请求和响应报文的传输路径。
- 表6-7:HTTP/1.1警告码
6.4 请求首部字段
- 请求首部字段是从客户端往服务器端发送请求报文中所使用的字段,用于补充请求的附加信息、客户端信息、对响应内容相关的优先级等内容。
- 首部字段Host会告知服务器,请求的资源所处的互联网主机名和端口号。Host首部字段在HTTP/1.1规范内是唯一一个必须被包含在请求内的首部字段。
- 首部字段User-Agent会将创建请求的浏览器和用户代理名称等信息传达给服务器。
6.5 响应首部字段
- 响应首部字段是由服务器端向客户端返回响应报文中所使用的字段,用于补充响应的附加信息、服务器信息,以及对客户端的附加要求等信息。
- 首部字段ETag能告知客户端实体标识。它是一种可将资源以字符串形式做唯一性标识的方式。服务器会为每份资源分配对应的ETag值。
6.6 实体首部字段
- 实体首部字段是包含在请求报文和响应报文中的实体部分所使用的首部,用于补充内容的更新时间等与实体相关的信息。
- 首部字段Allow用于通知客户端能够支持Request-URI指定资源的所有HTTP方法。当服务器接收到不支持的HTTP方法时,会以状态码405 Method Not Allowed作为响应返回。与此同时,还会把所有能支持的HTTP方法写入首部字段Allow后返回。
- 首部字段Content-MD5是一串由MD5算法生成的值,其目的在于检查报文主体在传输过程中是否保持完整,以及确认传输到达。
- 首部字段Last-Modified指明资源最终修改的时间。
6.7 为Cookie服务的首部字段
- Cookie的工作机制是用户识别及状态管理。
- 网景通信公司设计并开发了Cookie,并制定相关的规格标准。1994年前后,Cookie正式应用在网景浏览器中。目前最为普及的Cookie方式也是以此为基准的。
- 目前使用最广泛的Cookie标准却不是RFC中定义的任何一个。而是在网景公司制定的标准上进行扩展后的产物。
- 表6-8:为Cookie服务的首部字段[插图]
- Cookie的HttpOnly属性是Cookie的扩展功能,它使JavaScript脚本无法获得Cookie。其主要目的为防止跨站脚本攻击(Cross-site scripting,XSS)对Cookie的信息窃取。
- 首部字段Cookie会告知服务器,当客户端想获得HTTP状态管理支持时,就会在请求中包含从服务器接收到的Cookie。接收到多个Cookie时,同样可以以多个Cookie形式发送。
6.8 其他首部字段
- HTTP首部字段是可以自行扩展的。
- 首部字段X-Frame-Options属于HTTP响应首部,用于控制网站内容在其他Web网站的Frame标签内的显示问题。其主要目的是为了防止点击劫持(clickjacking)攻击。
- 首部字段X-XSS-Protection属于HTTP响应首部,它是针对跨站脚本攻击(XSS)的一种对策,用于控制浏览器XSS防护机制的开关。
- 首部字段DNT属于HTTP请求首部,其中DNT是Do Not Track的简称,意为拒绝个人信息被收集,是表示拒绝被精准广告追踪的一种方法。
- 首部字段P3P属于HTTP响应首部,通过利用P3P(The Platform for Privacy Preferences,在线隐私偏好平台)技术,可以让Web网站上的个人隐私变成一种仅供程序可理解的形式,以达到保护用户隐私的目的。
7.1 HTTP的缺点
- HTTP主要有这些不足,例举如下。●通信使用明文(不加密),内容可能会被窃听●不验证通信方的身份,因此有可能遭遇伪装●无法证明报文的完整性,所以有可能已遭篡改
- 窃听相同段上的通信并非难事。只需要收集在互联网上流动的数据包(帧)就行了。对于收集来的数据包的解析工作,可交给那些抓包(Packet Capture)或嗅探器(Sniffer)工具。
- HTTP协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全传输层协议)的组合使用,加密HTTP的通信内容。
- 请求或响应在传输途中,遭攻击者拦截并篡改内容的攻击称为中间人攻击(Man-in-the-Middle attack,MITM)。
7.2 HTTP+加密+认证+完整性保护=HTTPS
- HTTP+加密+认证+完整性保护=HTTPS
- 在采用SSL后,HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能。SSL是独立于HTTP的协议,所以不光是HTTP协议,其他运行在应用层的SMTP和Telnet等协议均可配合SSL协议使用。
- 除此之外,想要节约购买证书的开销也是原因之一。
8.1 何为认证
- 核对的信息通常是指以下这些。●密码:只有本人才会知道的字符串信息。●动态令牌:仅限本人持有的设备内显示的一次性密码。●数字证书:仅限本人(终端)持有的信息。●生物认证:指纹和虹膜等本人的生理信息。●IC卡等:仅限本人持有的信息。
- HTTP/1.1使用的认证方式如下所示。 ●BASIC认证(基本认证) ●DIGEST认证(摘要认证) ●SSL客户端认证 ●FormBase认证(基于表单认证)
8.2 BASIC认证
- BASIC认证虽然采用Base64编码方式,但这不是加密处理。不需要任何附加信息即可对其解码。换言之,由于明文解码后就是用户ID和密码,在HTTP等非加密通信的线路上进行BASIC认证的过程中,如果被人窃听,被盗的可能性极高。
8.3 DIGEST认证
- 所谓质询响应方式是指,一开始一方会先发送认证要求给另一方,接着使用从另一方那接收到的质询码计算生成响应码。最后将响应码返回给对方进行认证的方式。
- DIGEST认证提供防止密码被窃听的保护机制,但并不存在防止用户伪装的保护机制。
8.4 SSL客户端认证
- 在多数情况下,SSL客户端认证不会仅依靠证书完成认证,一般会和基于表单认证(稍后讲解)组合形成一种双因素认证(Two-factor authentication)来使用。所谓双因素认证就是指,认证过程中不仅需要密码这一个因素,还需要申请认证者提供其他持有信息,从而作为另一个因素,与其组合使用的认证方式。 换言之,第一个认证因素的SSL客户端证书用来认证客户端计算机,另一个认证因素的密码则用来确定这是用户本人的行为。
8.5 基于表单认证
- 基于表单的认证方法并不是在HTTP协议中定义的。客户端会向服务器上的Web应用程序发送登录信息(Credential),按登录信息的验证结果认证。
- 一种安全的保存方法是,先利用给密码加盐(salt)[插图]的方式增加额外信息,再使用散列(hash)函数计算出散列值后保存。
9.1 基于HTTP的协议
- 在建立HTTP标准规范时,制订者主要想把HTTP当作传输HTML文档的协议。
9.2 消除HTTP瓶颈的SPDY
- Google在2010年发布了SPDY(取自SPeeDY,发音同speedy),其开发目标旨在解决HTTP的性能瓶颈,缩短Web页面的加载时间(50%)。
- Ajax的核心技术是名为XMLHttpRequest的API,通过JavaScript脚本语言的调用就能和服务器进行HTTP通信。借由这种手段,就能从已加载完毕的Web页面上发起请求,只更新局部页面。
9.3 使用浏览器进行全双工通信的WebSocket
- WebSocket,即Web浏览器与Web服务器之间全双工通信标准。
9.4 期盼已久的HTTP/2.0
- HTTP/2.0的目标是改善用户在使用Web时的速度体验
9.5 Web服务器管理文件的WebDAV
- WebDAV(Web-based Distributed Authoring and Versioning,基于万维网的分布式创作和版本控制)是一个可对Web服务器上的内容直接进行文件复制、编辑等操作的分布式文件系统。
- 使用HTTP/1.1的PUT方法和DELETE方法,就可以对Web服务器上的文件进行创建和删除操作。可是出于安全性及便捷性等考虑,一般不使用。
- WebDAV为实现远程文件管理,向HTTP/1.1中追加了以下这些方法。PROPFIND:获取属性PROPPATCH:修改属性MKCOL:创建集合COPY:复制资源及属性MOVE:移动资源LOCK:资源加锁UNLOCK:资源解锁
- 防火墙的基本功能就是禁止非指定的协议和端口号的数据包通过。因此如果使用新协议或端口号则必须修改防火墙设置。
10.1 HTML
- HTML(HyperText Markup Language,超文本标记语言)是为了发送Web上的超文本(Hypertext)而开发的标记语言。超文本是一种文档系统,可将文档中任意位置的信息与其他信息(文本或图片等)建立关联,即超链接文本。标记语言是指通过在文档的某部分穿插特别的字符串标签,用来修饰文档的语言。我们把出现在HTML文档内的这种特殊字符串叫做HTML标签(Tag)。
- 而这份HTML文档内这种被< >包围着的文字就是标签。在标签的作用下,文档会改变样式,或插入图片、链接。
- HTML5标准不仅解决了浏览器之间的兼容性问题,并且可把文本作为数据对待,更容易复用,动画等效果也变得更生动
- CSS的理念就是让文档的结构和设计分离,达到解耦的目的。
10.2 动态HTML
- 动态HTML技术是通过调用客户端脚本语言JavaScript,实现对HTML的Web页面的动态改造。利用DOM(Document Object Model,文档对象模型)可指定欲发生动态变化的HTML元素。
- DOM是用以操作HTML文档和XML文档的API(Application Programming Interface,应用编程接口)。使用DOM可以将HTML内的元素当作对象操作,如取出元素内的字符串、改变那个CSS的属性等,使页面的设计发生改变。
10.3 Web应用
- Web应用是指通过Web功能提供的应用程序。
- 类似这种由程序创建的内容称为动态内容,而事先准备好的内容称为静态内容。Web应用则作用于动态内容之上。
- CGI(Common Gateway Interface,通用网关接口)是指Web服务器在接收到客户端发送过来的请求后转发给程序的一组机制。
- 之前提及的CGI,由于每次接到请求,程序都要跟着启动一次。因此一旦访问量过大,Web服务器要承担相当大的负载。而Servlet运行在与Web服务器相同的进程中,因此受到的负载较小[插图]。Servlet的运行环境叫做Web容器或Servlet容器。
10.4 数据发布的格式及语言
- XML(eXtensible Markup Language,可扩展标记语言)是一种可按应用目标进行扩展的通用标记语言。旨在通过使用XML,使互联网数据共享变得更容易。
- 为了保持数据的正确读取,HTML不适合用来记录数据结构。
- 从XML文档中读取数据比起HTML更为简单。由于XML的结构基本上都是用标签分割而成的树形结构,因此通过语法分析器(Parser)的解析功能解析XML结构并取出数据元素,可更容易地对数据进行读取。
- RSS(简易信息聚合,也叫聚合内容)和Atom都是发布新闻或博客日志等更新信息文档的格式的总称。两者都用到了XML。
- 用于订阅博客更新信息的RSS阅读器,这种应用几乎支持RSS的所有版本以及Atom。
- JSON(JavaScript Object Notation)是一种以JavaScript(ECMAScript)的对象表示法为基础的轻量级数据标记语言。能够处理的数据类型有false/null/true/对象/数组/数字/字符串,这7种类型。
11.1 针对Web的攻击技术
- 应用HTTP协议的服务器和客户端,以及运行在服务器上的Web应用等资源才是攻击目标。
- 在HTTP请求报文内加载攻击代码,就能发起对Web应用的攻击。通过URL查询字段或表单、HTTP首部、Cookie等途径把攻击代码传入,若这时Web应用存在安全漏洞,那内部信息就会遭到窃取,或被攻击者拿到管理权限。
- 主动攻击模式里具有代表性的攻击是SQL注入攻击和OS命令注入攻击。
11.2 因输出值转义不完全引发的安全漏洞
- 因输出值转义不完全引发的安全漏洞
- 跨站脚本攻击(Cross-Site Scripting,XSS)是指通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击。
- XSS是攻击者利用预先设置的陷阱触发的被动攻击
- 在存在可跨站脚本攻击安全漏洞的Web应用上执行上面这段JavaScript程序,即可访问到该Web应用所处域名下的Cookie信息。然后这些信息会发送至攻击者的Web网站(http://hackr.jp/),记录在他的登录日志中。结果,攻击者就这样窃取到用户的Cookie信息了。
- SQL注入(SQL Injection)是指针对Web应用使用的数据库,通过运行非法的SQL而产生的攻击。
- SQL语句中的--之后全视为注释。即,and flag=1这个条件被自动忽略了。
- SQL语句中的--之后全视为注释。即,and flag=1这个条件被自动忽略了。
- SQL注入是攻击者将SQL语句改变成开发者意想不到的形式以达到破坏结构的攻击。
- OS命令注入攻击(OS Command Injection)是指通过Web应用,执行非法的操作系统命令达到攻击的目的。只要在能调用Shell函数的地方就有存在被攻击的风险。
- HTTP首部注入攻击(HTTP Header Injection)是指攻击者通过在响应首部字段内插入换行,添加任意响应首部或主体的一种攻击。属于被动攻击模式。
- HTTP响应截断攻击是用在HTTP首部注入的一种攻击。攻击顺序相同,但是要将两个%0D%0A%0D%0A并排插入字符串后发送。利用这两个连续的换行就可作出HTTP首部与主体分隔所需的空行了,这样就能显示伪造的主体,达到攻击目的。这样的攻击叫做HTTP响应截断攻击。
- 邮件首部注入(Mail Header Injection)是指Web应用中的邮件发送功能,攻击者通过向邮件首部To或Subject内任意添加非法内容发起的攻击。利用存在安全漏洞的Web网站,可对任意邮件地址发送广告邮件或病毒邮件。
- 目录遍历(Directory Traversal)攻击是指对本无意公开的文件目录,通过非法截断其目录路径后,达成访问目的的一种攻击。这种攻击有时也称为路径遍历(Path Traversal)攻击。
- 如果这份read.php脚本接受对指定目录的访问请求处理,那原本不公开的文件就存在可被访问的风险。
- 远程文件包含漏洞(Remote File Inclusion)是指当部分脚本内容需要从其他文件读入时,攻击者利用指定外部服务器的URL充当依赖文件,让脚本读取之后,就可运行任意脚本的一种攻击。
11.3 因设置或设计上的缺陷引发的安全漏洞
- 错误设置Web服务器,或是由设计上的一些问题引起的安全漏洞。
- 强制浏览(Forced Browsing)安全漏洞是指,从安置在Web服务器的公开目录下的文件中,浏览那些原本非自愿公开的文件。
- 直接通过URL访问原本必须经过认证才能在Web页面上使用的文件
- 即使没有对这篇日记的访问权限,只要知道这图片的URL,通过直接指定URL的方式就能显示该图片。日记的功能和文本具有访问对象的控制,但不具备对图片访问对象的控制,从而产生了安全漏洞
- 不正确的错误消息处理(Error Handling Vulnerability)的安全漏洞是指,Web应用的错误信息内包含对攻击者有用的信息。
- 攻击者利用进行不同的输入会提示不同的错误信息这条,就可用来确认输入的邮件地址是否已在这个Web网站上注册过了。为了不让错误消息给攻击者以启发,建议将提示消息的内容仅保留到“认证错误”这种程度即可
- 可信度高的Web网站如果开放重定向功能,则很有可能被攻击者选中并用来作为钓鱼攻击的跳板。
11.4 因会话管理疏忽引发的安全漏洞
- 会话管理是用来管理用户状态的必备功能
- 会话劫持(Session Hijack)是指攻击者通过某种手段拿到了用户的会话ID,并非法使用此会话ID伪装成用户,达到攻击的目的。
- 跨站点请求伪造(Cross-Site Request Forgeries,CSRF)攻击是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息或设定信息等某些状态更新,属于被动攻击。
11.5 其他安全漏洞
- 密码破解有以下两种手段。●通过网络的密码试错● 对已加密密码的破解(指攻击者入侵系统,已获得加密或散列处理的密码数据的情况)
- 从加密过的数据中导出明文通常有以下几种方法。●通过穷举法·字典攻击进行类推●彩虹表●拿到密钥●加密算法的漏洞
- 点击劫持(Clickjacking)是指利用透明的按钮或链接做成陷阱,覆盖在Web页面之上。然后诱使用户在不知情的情况下,点击那个链接访问内容的一种攻击手段。这种行为又称为界面伪装(UI Redressing)。
- DoS攻击(Denial of Service attack)是一种让运行中的服务呈停止状态的攻击。有时也叫做服务停止攻击或拒绝服务攻击。