Web services 如何向spring boot restful Web服务发送密码

Web services 如何向spring boot restful Web服务发送密码,web-services,rest,security,spring-boot,Web Services,Rest,Security,Spring Boot,我是web服务和安全主题的初学者。我想为登录编写一个spring boot restful web服务。我可以将url作为参数发送,但以相同的方式发送密码是不安全的。那么,向web服务传递密码的方法是什么呢 当我在网上读到人们提到散列密码(但据我所知,它不够安全)和使用md5等。因为我是一个初学者,它在我的脑海中并没有清晰的图像 那么,我应该按照哪种方式向restful web服务发送密码呢?最常见的方式是使用POST请求,并在负载对象中包含用户名和加密密码。因此,在后端,您将通过@Reques

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

当我在网上读到人们提到散列密码(但据我所知,它不够安全)和使用md5等。因为我是一个初学者,它在我的脑海中并没有清晰的图像


那么,我应该按照哪种方式向restful web服务发送密码呢?

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

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

通常在登录期间,密码被发送到服务器,而不是其散列。需要对该站点进行加密,以避免攻击者嗅探密码

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

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

除了POST&Hashing之外,web安全还有很多方面。我建议从Rob Winch看(前2)。他是春季安全项目的负责人


好消息是,SpringBoot使许多复杂的解决方案易于配置。查看并了解其他此类功能的实现。

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

您可以将密码放在正文中,也可以将其作为授权标题“Authorization”:“Basic username:password”。(). URL通常是坏的,因为ppl喜欢将粘贴URL复制到电子邮件中,等等

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


不久前,我写了一些关于不同代币及其存储方式的信息:

感谢您提供与此主题相关的建议和共享资料。@cin如果您认为答案确实对您有帮助,您应该单击复选符号接受答案。