我正在开发一个客户端/服务器应用程序,它将通过休息进行通信。一些自定义请求数据将存储在请求的标头中。发送请求的服务器和接收服务器都有 SSL 证书 - 标头会被加密,还是仅内容会被加密?

有帮助吗?

解决方案

SSL 加密从客户端到服务器并返回的整个通信路径,所以是的 - 标头将被加密。

顺便说一句,如果您开发网络应用程序并关心数据安全,那么您至少应该阅读 Niels Ferguson 和 Bruce Schneier 所著的实用密码学之类的书,并且进一步阅读更关注 Web 应用程序安全性的书可能会是一个不错的选择主意。如果我可以发表评论 - 请注意,我并不是说作为个人批评 - 你的问题表明对非常基本的网络安全技术根本缺乏了解,而这绝不是一个好兆头。

此外,确认假定已加密的数据确实已加密也绝不是一个坏主意。您可以使用网络分析仪来监控线路上的流量,并留意任何明文发送的敏感内容。我以前曾使用 Wireshark 来执行此操作 - 有时结果可能会令人惊讶。

其他提示

只要您在 SSL 隧道中进行通信,服务器和客户端之间发送的所有内容都将被加密。加密是在发送或接收任何数据之前完成的。

标头和内容均已加密。

您似乎认为 REST 是一个独特的协议。

REST 不是一个协议。它是基于 HTTP 的应用程序的设计风格。

那么,您正在编写一个 HTTP 应用程序。标头是否已加密?是的,如果您使用 HTTPS(基于 SSL 的 HTTP)协议而不是纯 HTTP。

双方都有证书与您的问题没有直接关系。SSL 证书用于身份验证。它们有助于检测中间人攻击,例如使用 DNS 缓存中毒可能发生的攻击。

拥有证书还不够,您必须配置 Web 服务器来加密该域或虚拟主机的连接(即使用证书)。此外,我认为您只需要一个证书,对请求的响应仍将被加密。

是的,HTTP 标头和数据都经过加密。

SSL..或者更确切地说,HTTPS(基于 SSL 的 HTTP)通过 SSL 发送所有 HTTP 内容,并且由于 HTTP 内容和标头实际上是同一件事,这意味着标头也被加密。由于 GET 和 POST 数据是通过 HTTP 标头发送的,因此只有在安全发送数据时才有意义,您不仅仅希望响应代码或内容被加密。

其他答案是正确的,使用 SSL 时,标头和正文确实被加密。但请记住,可以包含查询参数的 URL 是 绝不 加密的。因此请注意,切勿在 URL 查询参数中放入任何敏感信息。

更新: 正如@blowdart 下面指出的,这是错误的。请参阅下面的评论。

不是 一切 已加密:请求查询字符串未加密。相信我,我见过这样的请求:

https://mydomain.com/authenticate?user=用户名&密码=MyStrongPasswordSentInTheClear

请不要将敏感数据作为参数放入查询字符串中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top