HTTPS

Author:Helene

本文章采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。转载请注明来自Helene的博客


本文参考:https://blog.csdn.net/tpasta/article/details/81107915

HTTP缺点

到现在为止,我们已经了解到HTTP具有相当优秀和方便的一面,然而HTTP并非只有好的一面,事物皆具有两面性,他也有不足之处。HTTP主要有以下不足:

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

这些问题不仅在HTTP上出现,其他未加密的协议中也会存在这类问题与

除此之外,HTTP本身还有很多缺点。而且,还有像某些特定的web服务器和特定的web浏览器在实际应用中存在的不足(也可以说成是脆弱性或者安全漏洞),另外,用java和PHP等
编程语言开发的web应用也可能存在安全漏洞

通信使用明文可能会被窃听

由于HTTP本身不具备加密的功能,所以也无法做到对通信整体(使用HTTP协议通信的请求和响应的内容)进行加密,即,HTTP报文使用明文(指未经过加密的报文)方式发送

TCP/IP是可能被窃听的网络

如果要问为什么通信时不加密是一个缺点,这是因为,按照TCP/IP协议族的工作机制,通信内容在所有的通信线路上都可能遭到窥视。

所谓互联网,是由能够连通到全世界的网络组成。无论世界哪个角落的服务器在和客服端通信时,在此线路上的某些网络设备、光缆、计算机等都不可能是个人的私有物,
所以不排除某个环节中会遭到恶意窥视行为。

即使已经加密处理过得通信,也会被窥视到通信内容,这点和未加密的通信是相同的。只是说如果通信经过加密,就有可能让人无法破解报文信息的含义,但加密处理后的报文信息本身还是会被看到的

互联网上的任何角落都存在通信内容被窃听的风险,窃听相同段上的通信并非难事。只需要收集在互联网上流动的数据包(帧)就行了。对于收集来的数据包的解析工作,可以交给那些抓包或嗅探器工具。

加密处理防止被窃听

在目前大家正在研究的如何防止窃听保护信息的集中对策中,最为普及的就是加密技术。加密的对象可以由这么几个。

通信的加密

一种方式就是将通信加密。HTTP协议中没有加密机制,但可以通过和SSL(secure socket layer,安全套接层)或TLS(安全层传输协议)的组合使用,加密HTTP的通信内容。
用SSL建立安全通信线路后,就可以在这条线路上进行HTTP通信了。

与SSL组合使用的HTTP被称为HTTPS(HTTP Secure,超文本传输安全协议)或HTTP OVER SSL。

内容的加密

还有一种将参与通信的内容本身加密的方式。由于HTTP协议中没有加密机制,那么就对HTTP协议传输的内容本身加密。即把HTTP报文里所含的内容进行加密处理。

在这种情况下,客户端需要对HTTP报文进行加密处理后在发送请求

诚然,为了做到有效的内容加密,前提是要求客户端和服务器同时具备加密和解密机制。主要应用在web服务中。有一点必须引起注意,由于该方式不同于SSL或TLS将整个通信线路加密处理,
所以内容仍有被篡改的风险。稍后会加以说明。

不验证通信方的身份就可能遭遇伪装

HTTP协议中的请求和响应不会对通信方进行确认。也就是说存在“服务器是否就是发送请求中URL真正指定的主机,返回的响应是否真的是返回到实际提出请求的客户端”等类似信息。

任何人都可发起请求

在HTTP协议通信时,由于不存在确认通信方的处理步骤,任何人都可以发起请求。另外,服务器只要接收到请求,不管对方是谁都会返回一个响应(但也仅限于发送端的IP地址和端口
没有被web服务器设置为限制访问的前提下)。

HTTP协议的实现本身非常简单,不论是谁发送过来的请求都会返回响应,因此不确认通信方,会存在一下各种隐患:

1、无法确定请求发送至目标的web服务器是否是按真实意图返回响应的那台服务器。有可能是已伪装的客户端。

2、无法确定响应返回到客户端是否是按真实意图接受响应的那个客户端。有可能是已伪装的客户端。

3、无法确定正在通信的对方是否具备访问权限。因为某些web服务器上保存着重要的信息,只想发给特定用户通信的权限。

4、无法判断请求是来自何方、出自谁手

5、即使是无意义的请求也会照单全收。无法阻止海量请求下的DOS攻击(Denial of Service,拒绝服务攻击)。

查明对手的证书

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

通过使用证书,以证明通信方就是意料中的服务器。这对使用者个人来讲,也减少了个人信息泄露的危险性。另外,客户端持有证书即可完成个人身份的确认,也可用于对web网站的认证环节。

无法证明报文完整性,可能已遭到篡改

所谓完整性是指信息的准确度。若是无法证明其完整性,通常也就意味着无法判断信息是否准确。

接收到的内容可能有误

由于HTTP协议无法证明通信的报文的完整性,因此,在请求或响应发送出去之后接受之前的这段时间内,即使请求或响应的内容遭到篡改,也没办法获悉。

换句话说,没有任何办法确认,发出的请求响应和接收到的请求响应是前后相同的

比如,从某个web网站上下载内容,是无法确定客户端下载的文件和服务器上存放的文件是否前后一致。文件内容在传输途中可能已经被篡改为其他内容。即使内容真的已经改变,作为接收方的客户端
也觉察不到。像这样,请求或者响应在传输途中,遭攻击拦截并篡改内容的攻击称为中间人攻击。

如何防止篡改

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

提供文件下载服务的web网站也会提供相应的以PGP(完美隐私)创建的数字签名及MD5算法生成的散列值。PGP是用来证明创建文件的数字签名,MD5是由单向函数生成的散列值。不论使用哪一种方法,
都需要操纵客户端的用户笨人亲自检查验证下载的文件是否就是原来服务器上的文件。浏览器无法自动帮用户检查。

可惜的是,用这些方法也依然无法百分百确认结果正确。因为PGP和MD5本身被改写的话,用户是没有办法意识到的

为了有效防止这些弊端,有必要使用HTTPS。SSL提供认证和加密处理及摘要功能。仅靠HTTP确保完整性是非常困难的,因此通过和其他协议组合是用来实现这个目标。下节我们介绍HTTPS的相关内容

确保web安全的HTTPS

在HTTP协议中可能存在信息窃听或者身份伪装等安全问题。使用HTTPS通信机制可以有效防止这些问题

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

HTTP加上加密处理和认证以及完整性保护后即是HTTPS

如果在HTTP协议通信过程中使用未加密的明文,比如在web页面输入信用卡号,如果这条线路遭到窃听,那么信用卡号就暴露了。

另外,对于HTTP来说,服务器也好,客户端也好,都是没有办法确认通信方的。

因为很有可能并不是和原本预想的通信方在实际通信。并且还要考虑到接收呆的服务在通信途中遭到篡改这一可能性。

为了解决以上问题,需要在HTTP上再加入加密处理和认证等机制。我们把添加了加密及认证机制的HTTP成为HTTPS(HTTP Secure)

经常会在web的登录页面和购物结算界面等使用HTTPS通信。使用HTTPS通信时,不在用http://,而是改用https://。另外,当浏览器访问HTTPS通信有效的web网站时,浏览器的地址栏内会出现一个带锁的
标记。对HTTPS的显示方式会因为浏览器的不同而有所改变

HTTPS 是身披SSL外壳的HTTP

HTTPS并非是应用层的一种协议。只是HTTP通信接口部分用SSL和TLS协议代替而已。

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

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

相互交换秘钥的公开秘钥加密技术

在对SSL进行讲解之前,我们先来了解一下加密方法。SSL采用一种叫做公开密钥加密的加密处理方式

近代的加密方法中加密算法是公开的,而秘钥却是保密的。通过这种方式得以保持加密方法的安全性

加密和解密都会用到秘钥。没有秘钥就无法对密码解密,反过来说,任何人只要持有秘钥就能解密了。如果秘钥被攻击者获取,那加密也就失去了意义

共享秘钥加密的困境

加密和解密同用一个秘钥的方式称为共享秘钥加密,也被叫做对成秘钥加密

以共享秘钥方式加密时必须将秘钥也发给对方。可究竟怎么样才能安全地转交?在互联网上转发密钥匙,如果通信被监听那么秘钥就可能户落入攻击者之手,同时也就失去了加密的意义。另外还得
设法安全地保管接收到的秘钥

怎么才能安全地发送秘钥?

发送秘钥就有被窃听的风险,但是不发送,对方就不能解秘,秘钥若能安全发送,那数据也应该能安全送达

使用两把秘钥的公开秘钥加密

公开秘钥加密方式很好地解决了共享秘钥的困难

公开秘钥加密使用一对非对称的秘钥。一把叫做私有秘钥,另一把叫做公开秘钥。顾名思义,私有秘钥不能让其他任何人知道,而公开密钥则可以随意发布,
任何人都可以获得。公开密钥和私有秘钥是配对的一套秘钥。

使用公开秘钥加密方式,发送密文的一方使用对方的公开秘钥进行加密处理,对方收到被加密的信息后,在使用自己的私有秘钥进行解密。利用这种方式,
不需要发送用来解密的私有秘钥,也不必担心秘钥被攻击者窃听而盗走。另外,要想根据密文和公开密钥,恢复到信息原文是异常困难的,因为解密过程
就是在对离散对数进行求职,这并非轻而易举就能办到的。退一步讲,如果能对一个非常大的整数做到快速地因式分解,那么解密破解还是存在希望的。但
就目前的技术来看是不太现实的

HTTPS使用混合加密机制

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

但是公开密钥加密与共享秘钥加密相比,其处理速度要慢。所以应充分利用两者各自的优势,将多种方法组合起来用于通信。在交换
秘钥环节使用公开密钥加密方式,之后的简历通信交换报文阶段则使用共享加密方式

公开秘钥加密处理起来比共享秘钥加密方式更为复杂,因此若在通信时使用公开秘钥加密方式,效率就很低。

(1)使用公开秘钥加密方式安全地交换在稍后的共享秘钥加密中要使用的秘钥

证明公开秘钥正确性的证书

遗憾的是,公开密钥加密方式还存在一些问题的。那就是无法证明公开秘钥本身就是货真价实的公开密钥。比如,正在准备和某台服务器建立公开秘钥加密方式
的通信时,如何证明收到的公开密钥就是原本预想的那台服务器发行的公开密钥,或许在公开秘钥传输途中,真正的公开秘钥已经被攻击者替换掉了。

为了解决上述问题,可以使用由数字证书认证机构(CA)和相关机关颁发的公开秘钥证书。

数字证书认证机构处于客户端与服务器都可信赖的第三方机构的立场上。威瑞信就是其中一家非常有名的数字证书认证机构。我们来介绍一下数字证书认证机构的
业务流程。

首先,服务器的运营人员向数字证书认证机构提出公开秘钥的申请。数字证书认证机构在判明提出申请者的身份之后,会对已申请的公开秘钥做数字签名,
然后分配这个已签名的公开密钥,并将该公开秘钥放入公钥证书后绑定在一起。

服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,以进行公开秘钥加密方式通信。公钥证书也可叫做数字证书或者直接称为证书。接到证书的客户端
可以使用数字证书认证机构的公开密钥,对那张证书上数字签名进行验证,一旦通过验证,客户端便可明确两件事:一,认证服务器的公开秘钥的是真是有效的
数字证书认证机构 二,服务器的公开秘钥是值得信赖的

此处认证机关的公开密钥必须安全地转交给客户端。使用通信方式时,如何安全转交是一件困难的事情,因此,多数浏览器开发商发布版本时,会事先在
内部植入常用的认证机关的公开秘钥。

HTTPS的安全通信机制

步骤 1: 客户端通过发送 Client Hello 报文开始 SSL 通信。报文中包含客户端支持的 SSL 的指定版本、加密组件(Cipher Suite)列表(所使用的加密算法及密钥长度等)。
步骤 2: 服务器可进行 SSL 通信时,会以 Server Hello 报文作为应答。和客户端一样,在报文中包含 SSL 版本以及加密组件。服务器的加密组件内容是从接收到的客户端加密组件内筛选出来的。
步骤 3: 之后服务器发送 Certificate 报文。报文中包含公开密钥证书。
步骤 4: 最后服务器发送 Server Hello Done 报文通知客户端,最初阶段的SSL握手协商部分结束。

步骤 5: SSL 第一次握手结束之后,客户端以 C
lient Key Exchange 报文作为回应。报文中包含通信加密中使用的一种被称为 Pre-master secret 的随机密码串。该报文已用步骤 3 中的公开密钥进行加密。
步骤 6: 接着客户端继续发送 Change Cipher Spec 报文。该报文会提示服务器,在此报文之后的通信会采用 Pre-master secret 密钥加密。
步骤 7: 客户端发送 Finished 报文。该报文包含连接至今全部报文的整体校验值。这次握手协商是否能够成功,要以服务器是否能够正确解密该报文作为判定标准。


步骤 8: 服务器同样发送 Change Cipher Spec 报文。
步骤 9: 服务器同样发送 Finished 报文。


步骤 10: 服务器和客户端的 Finished 报文交换完毕之后,SSL 连接就算建立完成。当然,通信会受到 SSL 的保护。从此处开始进行应用层协议的通信,即发送 HTTP请求。
步骤 11: 应用层协议通信,即发送 HTTP 响应。
步骤 12: 最后由客户端断开连接。断开连接时,发送 close_notify 报文。上图做了一些省略,这步之后再发送 TCP FIN 报文来关闭与 TCP 的通信。在以上流程中,应用层发送数据时会附加一种叫做 MAC(Message Authentication Code)的报文摘要。MAC 能够查知报文是否遭到篡改,从而保护报文的完整性。

SSL和TLS

HTTPS使用SSL和TLS这两个协议

SSL技术最初是由浏览器开发商网景通信公司率先倡导的,开发过SSL3.0之前的版本。目前主导权以移交到IETF的手中。
IETF以SSL3.0为基准,后又制定了TLS1.0、TLS1.1 和 TLS1.2。TSL 是以SSL 为原型开发的协议,有时会统一称该协议为 SSL。当前主流的版本是SSL3.0 和 TLS1.0。
由于 SSL1.0 协议在设计之初被发现出了问题,就没有实际投入使用。SSL2.0 也被发现存在问题,所以很多浏览器直接废除了该协议版本。

SSL速度慢吗

HTTPS也存在一些问题,那就是当使用SSL时,它的处理速度会变慢

由于HTTPS还需要做服务器、客户端双方加密及解密处理,因此会消耗CPU和内存等硬件资源

和HTTP通信相比,SSL通信部分消耗网络资源。而SSL通信部分,又因为要对通信进行处理,所以时间上又延长了
HTTPS比HTTP要慢2到100倍

SSL的慢分两种。一种是指通信慢,另一种是指由于大量消耗CPU及内存等资源,导致处理速度变慢。

1.和使用HTTP相比,网络负载可能会变慢2到100倍。除去和TCP链接、发送HTTP请求.响应外,还必须进行SSL通信,因此整体上处理通信量不可避免的增加。

2.另一点是SSL必须进行加密处理。在服务器和客户端都需要进行加密和解密的运算处理。因此从结果上讲,比起HTTP会更多地消耗服务器和客户端的硬件资源,导致负载增强。

针对速度变慢这一问题,并没有根本性的解决方案,我们会使用SSL加速器这种(专用服务器)硬件来改善该问题。该硬件为SSL通信专用硬件,相对软件来讲,能够提高数倍SSL的计算速度。
仅在SSL处理时发挥SSL加速器的功效,以分担负载。

为什么不一直使用HTTPS

既然HTTPS那么安全可靠,那么为什么所有的web网站不一直使用HTTPS?

其中一个原因是,因为与纯文本通信相比,加密通信会消耗更多的CPU及内存资源。如果每次通信都加密,会消耗相当多的资源,平摊到一台计算机上时,能够处理的请求数量必定也会随之减少。

因此,如果是非敏感信息则使用HTTP通信,只有在包含个人信息等敏感信息时,才利用HTTPS加密通信。

特别是每当那些访问量较多的web网站在进行加密处理时,它们所承担着的负载不容小觑。在进行加密处理时,并非对所有内容都进行加密处理,而是仅在那些需要信息隐藏时才会加密,已节约资源。

除此之外,想要节约购买证书的开销也是原因之一。

要进行HTTPS通信,证书是必不可少的。而使用的证书必须向认证机构(CA)购买。证书价格可能会根据不同的认证机构略有不同。通常,一年的授权需要数万日元(现在一万日元大约折合600人民币)。
那些购买证书并不合算的服务器以及一些个人网站,可能只会选择采用HTTP的通信方式。

消除HTTP瓶颈的SPDY

HTTP的瓶颈

在Facebook和Twitter等SNS网站上几乎能够实现观察到海量用户公开发布的内容,这也是一种乐趣,当几百、几千万的用户发布内容时,web网站为了保持这些新增内容,在很短的时间内就会发生大量
的内容更新。

为了尽可能的实时显示这些更新的内容,服务器上一有内容更新,就需要直接把那些内容反馈到客户端的界面上。虽然看起来挺简单的,但HTTP却无法妥善地处理好这项任务。

使用HTTP协议探知服务器上是否有内容更新,就必须频繁地从客户端到服务器进行确认。如果服务器上没有内容更新,那么就会产生徒劳的通信。

若想在现有的web实现所需要的功能,以下这些HTTP标准就会成为瓶颈

1、一条连接上只能发送一个请求

2、请求只能从客户端开始。客户端不可以接收除响应以外的指令

3、请求/响应首部未经压缩就发送,首部信息越多延迟越大

4、发送冗长的首部。每次互相发送相同的首部造成的浪费较多

5、可任意选择数据压缩格式。非强制压缩发送

Ajax的解决方法

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

Ajax的核心技术是名为XMLHttpRequest的API,通过JavaScript脚本语言的调用就能和服务器进行HTTP通信。借由这种手段就能从已加载完毕的web页面上发起请求,只更新局部页面。

而利用Ajax实时地从服务器获取内容,有可能会导致大量请求产生。另外,Ajax仍未解决HTTP协议本身存在的问题

Comet的解决方法

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

通常,服务器端接收到请求,在处理完毕后就会立即返回响应,但为了实现推送功能,Comet会先将响应置于挂起状态,当服务器端有内容更新时,再返回该响应。因此服务端一旦有更新,就可以立即反馈给客户端

内容上虽然可以做到实时更新,但为了保留响应,一次连接的持续时间也变长了。期间,为了维持链接会消耗更多的资源。另外,Comet也仍未解决HTTP协议本身存在的问题

SPDY的目标

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

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

SPDY的设计与功能

SPDY没有完全改写HTTP协议,而是在TCP/IP的应用层与运输层之间通过新加会话层的形式运作。同时,考虑到安全性问题,SPDY规定通信中使用SSL。SPDY以会话层的形式加入,控制对数据
的流动,但还是采用HTTP建立通信连接。因此,可照常使用HTTP的GET和POSY方法、COOKIR以及HTTP报文等


HTTP应用层    SPDY会话层   SSL表示层    TCP传输层

使用SPDY后,HTTP协议额外获得以下功能

1、多路复用流

通过单一的TCP连接,可以无限制处理多个HTTP请求。所有请求的处理都在一条TCP连接上完成,因此TCP的处理效率得到提高

2、赋予请求优先级

SPDY不仅可以无限制的并发处理请求,还可以给请求逐个分配优先级顺序。这样主要是为了在发送多个请求时,解决因带宽低而导致响应变慢的问题

3、压缩HTTP首部

压缩HTTP请求和响应的首部。这样一来,通信产生的数据包数量和发送的字节数就更少了

4、推送功能

支持服务器主动向客户端推送数据的功能。这样,服务器可以直接发送数据,而不必等待客户端的请求

5、服务器提示功能

服务器可以主动提示客户端请求所需的资源。由于客户端发现资源之前就可以获知资源的存在,因此在资源已经缓存等情况下,可以避免发送不必要的请求

SPDY消除web的瓶颈了吗

希望使用SPDY时,web的内容端不必做什么特别改动,而web浏览器及web服务器都要为对应的SPDY做出一定程度上的改动。有好几家web浏览器已经针对SPDY做出了相应的调整。另外,Web 服务器也进行了实验性质的应用,但把该技术导入实际的 Web 网站却进展不佳。因为 SPDY 基本上只是将单个域名( IP 地址)的通信多路复用,所以当一个 Web 网站上使用多个域名下的资源,改善效果就会受到限制。SPDY 的确是一种可有效消除 HTTP 瓶颈的技术,但很多 Web 网站存在的问题并非仅仅是由 HTTP 瓶颈所导致。对 Web 本身的速度提升,还应该从其他可细致钻研的地方入手,比如改善 Web 内容的编写方式等。

使用浏览器进行全双工通信的websocket

利用ajax和Comet技术进行通信可以提升web的浏览器速度,但问题在于通信若使用HTTP协议,就无法彻底解决瓶颈问题。websocket网络技术正是为解决这些问题而实现的一套新协议及PI

当时筹划将websocket作为HTML5标准的一部分,而现在它却逐渐变成了独立的协议标准。websocket通信协议在2011年被 RFC 6455 - The WebSocketProtocol 定为标准。

websocket的设计与功能

websocket,即web浏览器与web服务器之间全双工通信标准。其中,websocketwebsocket协议由IETF定为标准,websocket API由W3C定为标准。仍在开发中的websocket技术主要是为了解决Ajax和Comet里XMLHttpRequest
附带的缺陷所引起的问题

websocket协议

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

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

下面我们列举出websocket协议的主要特点

1、推送功能

支持由服务器向客户端推送数据的推送功能。这样,服务器可以直接发送数据,而不必等待客户端的请求

2、减少通信量

只要建立起websocket连接,就希望一直保持连接状态。和HTTP相比,不但每次连接时的总开销减少,而且由于websocket的首部信息很小,通信量也相应减少了

为了实现websocket通信,在HTTP链接建立后,需要完成一次握手的步骤。成功握手确立websocket连接后,通信时不在使用HTTP的数据帧,而采用websocket独立的数据帧。

web的攻击技术

互联网上的攻击大都将wbe站点作为目标。本章讲解具体有哪些攻击web站点的手段,以及攻击会造成怎样的影响。

简单的HTTP协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象。应用HTTP协议的服务器和客户端,以及运行在服务器上的web应用资源才是攻击目标

目前,来自互联网的攻击大多是冲着web站点来的,他们大多把web应用作为攻击目标。