如何发送密码到spring boot restful webservice

时间:2017-01-07 22:00:45

标签: web-services rest security spring-boot

我是Web服务和安全主题的初学者。我想写一个spring boot restful web服务进行登录。我可以发送url作为参数,但以同样的方式发送密码是不安全的。那么将密码传递给Web服务的方式是什么?

正如我在网上看到的那样,人们提到了哈希密码(但据我所知它并不安全)和usind md5等等。因为我是初学者,所以它并没有在我脑海中清晰地描绘出来。

那么我应该按照哪种方式向宁静的网络服务发送密码?

3 个答案:

答案 0 :(得分:2)

要快速启动并运行,请在POST请求中发送密码,以使其在URL中不可见。

通常在登录期间,密码将发送到服务器而不是其哈希值。该站点需要https以避免攻击者嗅探密码。

此外,对服务器的所有后续请求都可以使用称为X-Auth-Token的令牌(由服务器提供)。此令牌作为cookie存储在用户的计算机上,并且可以具有会话失效的到期时间。

在服务器端,密码应以加密方式存储,建议Bcrypt

除了POST& amp;还有很多网络安全措施。散列。我建议从Rob Winch观看(前2)excellent video presentations。他是Spring Security项目的负责人。

好消息是,Spring引导使很多这些复杂的解决方案易于配置。查看the same sitethis repo了解其他此类功能'的实施方式。

答案 1 :(得分:0)

最常见的方法是使用POST请求,并在有效负载对象中包含用户名和加密密码。因此,在后端,您将收到@RequestBody

答案 2 :(得分:0)

如上所述,基本哈希客户端并不真正有意义,因为客户端无论如何都会知道哈希算法,所以不会隐藏任何东西。使用HTTPS可确保没有人能够读取您的有线数据。您可以在维基百科上阅读有关HTTPS和公钥/私钥的更多信息。

您可以将密码放在正文中,也可以作为“授权”作为授权标题:“基本用户名:密码”。 (https://en.wikipedia.org/wiki/Basic_access_authentication)。 URL通常很糟糕,因为ppl喜欢将粘贴网址复制到电子邮件等等。

重要的是,应该交换一个不包含密码的令牌。如果这是一个Web应用程序,那么您将存储在HTML5本地存储中或作为cookie存储。如果是Android / iOS,他们有办法存储为“偏好”。

我在不同的令牌和存储它们的方法上写了一些信息:https://www.moesif.com/blog/technical/restful-apis/Authorization-on-RESTful-APIs/