首页IT科技HTTP缺点有哪些,如何解决

HTTP缺点有哪些,如何解决

时间2025-08-03 04:25:26分类IT科技浏览6578
导读:前言 大家好,我是蜗牛,在上一篇中,我们介绍了不同版本的HTTP区别和发展背景,这篇文章我们来聊聊HTTP的缺点,HTTP缺点大致总结有以下三点:...

前言

大家好              ,我是蜗牛                      ,在上一篇中       ,我们介绍了不同版本的HTTP区别和发展背景       ,这篇文章我们来聊聊HTTP的缺点                      ,HTTP缺点大致总结有以下三点:

通信使用明文(不加密)              ,内容可能会被窃听               。 不验证通信方的身份       ,因此有可能遭遇伪装(客户端和服务端都有可能) 无法证明报文的完整性                      ,有可能会被篡改                     。

其实以上问题不止HTTP有              ,其他未加密的协议也有此类问题,下面就以上三点详细介绍

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

因为HTTP不具备加密的功能                      ,所以无法对通信报文进行加密,所以是使用明文进行发送              ,那么就有可能被窃听       。

可以看到窃听无处不在

窃听的方式有多种                      ,比较常见有抓包工具(Wireshark)或者嗅探器(Sniffer)等工具       ,进行窃听               。

下面图片是使用Wireshark抓取的数据:

如何防止

通信的层加密

通过HTTP与SSL/TLS的组合使用(SSL/TSS后续章节介绍)              ,可以加密http通信内容                     。

通信报文内容加密

双方约定好密钥                      ,在传输前对原报文进行一个加密       ,传输至服务端或客户端在进行解密       ,因为此类方式不同于https方式                      ,所以还是有一定的风险       。

密钥不是一次一密              ,而且是内嵌在代码中       ,都有可能被获取        。 如果是基于浏览器的工程                      ,那么这个密钥是内嵌在js中的              ,而js是可以访问的,那么就有可能被获取                     。 如果是app工程中                      ,也有可能被反编译获取              。

不验证通信方的身份                      ,因此有可能遭遇伪装

HTTP协议的请求与响应不会对通信方进行身份的确认,因此这种无法确认通信方              ,总结有以下几类问题:

无法确定请求目标的Web服务器是否                      ,真正要访问的服务器        。 无法确定客户端是否是真实要响应的客户端                      。 无法确定正在通信的双方是否具备访问权限       ,比如:提供的WEB服务只想开发给指定的客户端访问              。 无法判定请求来自何方              ,出自谁手。 即使是无意义的请求                      ,也会照单全收                      。如海量的Dos攻击                     。

如何防止

使用SSL才可以防止此类问题       ,SSL不仅提供加密功能       ,还提供证书                      ,通过证书可以确定通信的方是意料之中的              ,这里肯定有人会问那证书如何保证可信呢?

证书是有公认值得信赖的CA机构颁发的       ,其他机构是没有颁发证书权限的。CA机构是可信赖的                      ,那么颁发的证书也是可信赖的               。

客户端验证服务端是否是可信的服务端              ,即单向认证                     。

客户端与服务端相互认证,即双向认证       。

无法证明报文的完整性                      ,有可能会被篡改

所谓完整性是指信息的准确度                      ,无法证明完整性,那么也就无法判定信息是否准确               。

由于HTTP协议无法证明通信的完整性              ,那么请求或者响应过程中报文就有可能被篡改                      ,而服务端或者客户端是无法感知的                     。

比如从网上下载的内容       ,是无法确认下载后的内容是否跟服务器上的内容一致       。

像这样在请求/响应途中              ,遭攻击者拦截并篡改内容攻击                      ,称为中间人攻击        。

如何防止

使用md5/sha1/pgp来确定报文完整性的方法

点击下载后       ,可以查看对应文件签名或者散列值       ,当我点击MD5后                      ,如下图:

通过对下载后文件在通过MD5生成散列码              ,与官网上的散列码进行比较       ,来确定文件是否被篡改                     。

但是从其他方式证明此种方式也不是绝对安全的                      ,具体可以参见:http://bobao.360.cn/news/detail/768.html大概意思就是构造              ”前缀碰撞法“              ,来制造MD5值一样,文件内容不一样的文件              。

总结

HTTP虽然使用极为广泛, 但是却存在不小的安全缺陷, 主要是其数据的明文传送和消息完整性检测的缺乏, 而这两点恰好是网络支付, 网络交易等新兴应用中安全方面最需要关注的

因此为了解决以上问题需要和SSL/TLS相关协议组合                      ,这就是HTTPS                      ,下篇我们介绍HTTPS

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
linux的touch修改文件日期(Linux中使用touch命令来修改文件的时间) 有没有什么在家就能挣钱的方法(什么**在家就能赚钱-在家**赚钱的十种方法,上班族、宝妈、学生党都能做的不二选择)