如何保护客户端 - 服务器应用程序中的通信?

时间:2013-03-28 12:51:44

标签: java spring security https

我在tomcat服务器上运行后端,并在浏览器中运行客户端。应用程序构建于Spring 3 MVC + Spring安全框架之上。如何保证沟通?还有其他选择,而不仅仅是设置服务器只能通过HTTPS访问?我没有这方面的经验所以它可能是一个愚蠢的问题,但是这会影响我的应用程序吗?我必须在我的应用程序中设置一些东西,当服务器通过https来通过GET / POST请求与客户端通信时? / p>

3 个答案:

答案 0 :(得分:3)

这取决于你所说的“安全”。如果您想要隐私,则必须使用TLS(SSL)作为传输。

如果您只关注身份验证,那么您还有另一个选择:摘要式身份验证

摘要式身份验证允许客户端(通常是浏览器)和服务器以安全的方式交换身份验证凭据,而不会保护整个通信。如果您使用摘要式身份验证,则第三方仍可以:

  1. 查看客户端和服务器交换的数据
  2. 在客户端和服务器之间插入自己并更改交换
  3. 第三方无法做的是欺骗身份验证或窃取传输中的用户名/密码。

    如果这不够安全,则需要TLS。您不一定要购买证书。您可以使用OpenSSL生成自己的。但是,此证书不会被浏览器自动信任,因此您无法真正将其用于公共站点。

    您需要查阅服务器文档,了解如何设置HTTPS或摘要式身份验证,具体取决于您的需求。

答案 1 :(得分:1)

HTTPS是HTTP的(S)ecure形式,因为你有一个HTTP客户端服务器应用程序,我当然会使用HTTPS。您所需要的只是为您的网站创建SSL证书,并将您的网站访问限制为仅限HTTPS,然后您99.99%安全。 您的证书可以是Versign的商业版或同等版本,也可以是某些开源引擎。 对于客户来说,没有什么需要做的来支持HTTPS

答案 2 :(得分:1)

您的应用程序不应受到从HTTP切换到HTTPS的影响,Tomcat会在此处理这个或者可能是Apache。重要的是要理解,HTTPS是服务器事物,而不是应用程序主题,因为客户端与服务器(Tomcat)建立连接,而不是与应用程序建立连接。查看Tomcat文档,它非常清楚如何工作。

而且,和其他人一样说:从你所说的最好是使用HTTPS(TLS / SSL)。证书在开始时有点吓人,但值得投入时间。