如何在调用 API 端点时隐藏凭据?

ALT*_*LMA 4 javascript vue.js axios

我是 Javascript 和 Vue.js 的新手。尝试了解更多相关信息。现在,我在调用 API 登录时将面临一个问题,该登录将在请求负载中显示密码。

我想知道,它不安全,对吧?如果这是正确的。如何在浏览器中隐藏它?

任何人,请帮助或建议我。

Dan*_*iel 5

这是一个相当沉重的话题,问题也不是很具体,所以我会在此过程中做出一些假设。

调用 API 登录,该登录将在请求负载中显示密码

我怀疑你的意思是,如果你在浏览器开发工具栏中查看请求,就会看到密码。

如果是这种情况,这是可以预料到的,并且不能 100% 缓解。我知道人们认为这意味着数据未加密,并开发自定义解决方案来隐藏敏感数据。但要记住的是,只要您使用,浏览器就已经为您进行了加密https。加密发生在请求离开浏览器之后,因此您不会看到它已加密,但它会以对中间任何人隐藏内容的方式传输到指定服务器。如果您添加一些额外的加密系统,就会增加复杂性,并且只要您传递密钥,“中间人”也可以访问该密钥。目标服务器内的端点也是加密的,因此您甚至可以使用它GET来传递敏感信息,而浏览器和服务器之间的任何人都不知道它是什么,但不要使用GET,因为POST它有额外的好处,例如不将值存储在您的 url 缓存中并且服务器不太可能将数据存储在日志中。

  • 如果使用https得当,您的数据将在浏览器和服务器之间进行加密。
  • 您应该使用POST请求来发送敏感数据
  • 避免在https. 它会增加比安全性更多的复杂性。

在 LocalStorage 与 cookie 中存储令牌还有一些注意事项。最终决定哪个更好还没有定论,但是只要采取适当的预防措施,它们都可以是安全的(虽然我认为cookie可以更安全,但前提是你让它们无法被js访问,所以它使得与它们一起工作在 SPA 的背景下更难)