我正在开发一个客户端/服务器应用程序,它将通过休息进行通信。一些自定义请求数据将存储在请求的标头中。发送请求的服务器和接收服务器都有SSL证书 - 标头是加密的还是加密的?
答案 0 :(得分:57)
SSL加密从客户端到服务器的整个通信路径,然后返回,是的 - 标头将被加密。
顺便说一下,如果你开发网络应用程序并关心数据安全性,那么你应该做的最少的事情是读一本像Niels Ferguson和Bruce Schneier的“实用密码学”这样的书,并且可能会进一步阅读那些更专注于Web应用程序安全性的书。是个好主意。如果我可以做一个观察 - 并且请,我并不是说这是个人批评 - 你的问题表明基本上缺乏对非常基本的网络安全技术的理解,这绝不是一个好兆头。
此外,确认假定加密的数据确实是加密的并不是一个坏主意。您可以使用网络分析仪监控线路上的流量,并注意明确发送的任何敏感信息。我之前使用过Wireshark来做这件事 - 结果有时令人惊讶。
答案 1 :(得分:6)
只要您在SSL隧道中进行通信,服务器和客户端之间发送的所有内容都将被加密。加密是在发送或接收任何数据之前完成的。
答案 2 :(得分:5)
标题和内容都已加密。
答案 3 :(得分:3)
您似乎认为REST是一种独特的协议。
REST不是协议。它是基于HTTP的应用程序的设计风格。
所以,你写一个HTTP应用程序。标头是否已加密?是的,如果您使用HTTPS(HTTP over SSL)协议而不是普通HTTP。
双方都有证书与您的问题没有直接关系。 SSL证书用于身份验证。它们有助于检测中间人攻击,例如可能使用DNS缓存中毒。
答案 4 :(得分:2)
拥有证书是不够的,您必须配置Web服务器以加密该域或虚拟主机的连接(即使用证书)。此外,我认为您只需要一个证书,对请求的响应仍然会被加密。
是的,HTTP标头和数据都是加密的。
答案 5 :(得分:0)
SSL ..或者说HTTPS(HTTP over HTTP)通过SSL发送所有HTTP内容,并且由于HTTP内容和标题实际上是相同的,这意味着标题也被加密。 看到GET和POST数据是通过HTTP标头发送的,那么只有在安全地发送数据时才有意义,您不仅希望加密响应代码或内容。
答案 6 :(得分:0)
其他答案是正确的,当使用SSL时,标题确实与身体一起加密。但请记住,可以包含查询参数的网址从不加密。所以要小心,不要在URL查询参数中放置任何敏感信息。
更新:正如@blowdart在下面指出的那样,这是错误的。请参阅下面的评论。
答案 7 :(得分:-3)
不所有都已加密:请求查询字符串未加密。相信我,我见过这样的要求:
https://mydomain.com/authenticate?user=username&password=MyStrongPasswordSentInTheClear
请不要将敏感数据作为参数放在查询字符串中。