我们正在讨论是否使用Content-MD5标头。 %+的情况)。
它将增加另一层保护以防止出现问题。 (即使在动态创建的页面上),因此客户端不需要其他形式的验证。 br />
要点:


某些媒体类型是否包含它们自己的摘要形式,从而使此操作不必要? HTTP标准?
现有的实际用途是什么?
MD5检查是否可以忽略不计?

将其添加到单元测试和实施,大约需要一个小时的工作;但是,如果有害,那么我们希望将其添加到网站“健康检查”中使用的更高级别的嗅探测试中。

#1 楼

TCP已经具有错误纠正功能,但这仅对TCP层有帮助。中间HTTP代理或负载平衡器可以破坏HTTP层上的数据,然后重新传输。 HTTP MD5使得可以检测到此损坏。没人真正谈论这种需求的原因是,这个问题确实非常罕见。大多数HTTP代理等“都能正常工作”。

RFC暗示了安全性。恕我直言,这是如此微弱,应该忽略-如果您需要任何类型的真实安全性和机密性,则需要HTTPS。不需要这个吗?


没有什么好用的。但是照片,流视频等中的一些错误通常对于人类来说是难以察觉的。

我会说这取决于用例:


对于REST基于摘要的Web服务增加了有用的附加错误校正层。请参阅此AWS故障作为示例。
对于通过纯HTTP处理关键任务数据的应用程序,值得实施。 Content-MD5为客户端提供了验证端到端传输完整性的选项。老实说,我什至不知道实际上有多少主流浏览器(PC,特别是移动浏览器)支持它。


评论


该AWS故障案例确实是阴险的。它已经使用了几年,但确实是我从未想过的故障模式的一个迷人示例。在远程使用数据存储时需要注意的一个非常有趣的东西。我想知道一些NoSQL解决方案以及它们如何处理此类问题。

– artlung
2010-09-10 1:49



这使得将决策传递给客户端非常容易。这样的选项现在可以作为“具有条件”提供,但不是必要条件。如果亚马逊可以部署负载平衡器并导致这些错误,那么它最终可能会出现在某个地方,并且看上去没有比麻烦的网站更糟糕的了。

–金属鲨鱼
2010-09-10 9:59

这实际上取决于翻转位在哪里。如果它是最低有效位,那么它将是不可察觉的。但是,颜色rgb(255,0,0)和rgb(127,0,0)之间存在巨大差异。对于原始视频,单个像素的损坏将不会那么明显,因为它在屏幕上停留了很短的时间,但是由于大多数在线视频使用了高效的压缩算法,因此翻转单个位会导致一半的图片在整个屏幕上损坏或移动屏幕。

–Lèsemajesté
2010-09-10 15:00



另外,就像您说的那样,银行应该只使用HTTPS,所以也没有必要使用Content-MD5,因为SSL / TLS已经在应用程序层提供了消息摘要吗?

–Lèsemajesté
2010-09-10 15:17

@Lèsemajesté:关于位错误,我同意抽象的说法。但是请记住,大多数流视频FX使用UDP或TCP上的特定于应用程序的传输来在纠错和速度之间进行“正确”的权衡-因此,流视频并不是Content-MD5的用例。关于银行应使用HTTPS,我同意,并且我想更清楚地说明一下。

– Jesper M
2010-09-10 16:15

#2 楼


MD5检查会增加网页加载时间的延迟。 br />
一般来说,我相信最后修改的标头最常用于确定页面是否已更改。假设您在此处提供有意义的值,那么我看不到content-md5标头。