REST请求标头是否由SSLencryption?

我正在开发一个客户/服务器应用程序,将通过rest沟通。 一些自定义请求数据将被存储在请求的头部。 发送请求的服务器和接收服务器都有一个SSL证书 – 头文件是encryption的还是只是内容?

SSLencryption从客户端到服务器的整个通信path,所以是的 – 头文件将被encryption。

顺便说一句,如果您开发networking应用程序并关心数据安全性,那么您最less应该阅读Niels Ferguson和Bruce Schneier撰写的“Practical Cryptography”一书,可能进一步阅读的重点是Web应用程序安全性理念。 如果我可以做一个观察 – 而且请,我不是说这是一个个人的批评 – 你的问题表明,对基本的networking安全技术缺乏基本的理解,这绝不是一个好兆头。

另外,确认假定被encryption的数据确实被encryption是一个不错的主意。 您可以使用networking分析器来监视networking上的stream量,并注意任何敏感的被发送的明文。 我之前使用过Wireshark来做这件事 – 有时候结果可能会令人惊讶。

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

标题和内容都被encryption。

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

REST不是协议。 这是基于HTTP的应用程序的devise风格。

所以,你写一个HTTP应用程序。 头文件是否被encryption? 是的,如果您使用的是HTTPS(HTTP over SSL)协议而不是普通的HTTP协议。

双方都有证书并不直接与你的问题有关。 SSL证书用于authentication。 他们帮助检测中间人攻击,如可能使用DNScaching中毒。

拥有证书是不够的,您必须configurationWeb服务器来为该域或虚拟主机encryption连接(即使用证书)。 另外,我想你只需要一个证书,对请求的响应仍然会被encryption。

是的,HTTP头和数据一样都是encryption的。

SSL ..或HTTPS(基于SSL的HTTP)通过SSL发送所有的HTTP内容,而HTTP内容和标题实际上是相同的东西,这意味着头文件也被encryption。 看到GET和POST数据是通过HTTP头发送的,那么只有在安全地发送数据时才有意义,而不仅仅是要求响应代码或内容被encryption。

其他答案是正确的,在使用SSL的时候,头文件和主体一起被encryption。 但请记住,可以包含查询参数的URL 永远不会被encryption。 所以请注意不要在URL查询参数中join任何敏感信息。

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

并非所有内容都已encryption:请求查询string未encryption。 相信我,我见过这样的要求:

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

请不要将敏感数据作为参数放在查询string中。