44

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

4

8 回答 8

62

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

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

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

于 2008-09-16T15:27:02.943 回答
6

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

于 2008-09-16T15:27:52.863 回答
5

标头和内容均已加密。

于 2008-09-16T15:27:47.263 回答
3

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

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

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

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

于 2008-09-16T15:40:11.900 回答
2

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

是的,HTTP 标头和数据一样被加密。

于 2008-09-16T15:33:17.173 回答
1

其他答案是正确的,即在使用 SSL 时,标头确实与正文一起加密。但请记住,可以包含查询参数的 URL永远不会加密。所以请注意不要在 URL 查询参数中放入任何敏感信息。

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

于 2008-09-18T14:34:26.580 回答
0

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

于 2008-09-16T15:27:52.397 回答
-3

并非所有内容都已加密:请求查询字符串未加密。相信我,我见过这样的请求:

https://mydomain.com/authenticate?user=username&password=MyStrongPasswordSentInTheClear

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

于 2012-04-24T21:25:07.227 回答