【问题标题】:Why OAuth keys on the front-end are discouraged?为什么不鼓励前端的 OAuth 密钥?
【发布时间】:2018-03-04 09:07:17
【问题描述】:

我正在开发一个应用程序,该应用程序将使用社交登录来在 Facebook、Twitter 等上发布消息,并且我阅读了很多帖子说出于安全原因应该将 OAuth 密钥保存在服务器端。

我知道这听起来像是一个愚蠢的问题,但为什么会这样呢?如果我创建了一个只允许管理登录和消息帖子的 Facebook 应用程序,那么可能发生的最糟糕的事情是,一些坏人获取了存储在前端的密钥并使用它们来登录和发布消息,但是没有别的,所以他不能造成任何伤害......

显然我仍在试图弄清整个过程是如何运作的,所以我还不是专家。

为了完整起见,整个程序将成为一个 Electron 桌面应用程序,我正在尝试通过没有用于发布消息的服务器来降低成本,甚至在 AWS 上也没有无服务器后端.

提前感谢您的回答!

【问题讨论】:

标签: oauth google-oauth electron twitter-oauth facebook-oauth


【解决方案1】:

试着从邻居的信任角度来考虑。

你有一把钥匙给住在你左边房子里的名叫 Lenny 的邻居和住在你右边房子里的另一个邻居 Rhonda。您认识朗达好几年了,她相信您会保留她的钥匙副本,以防她被锁在门外或丢失钥匙。

Lenny 很新,但你和他喝过一次酒,他看起来是个通情达理的人。你不知道的是,莱尼是从一个小镇搬到这里的,他并没有把门锁上。

你周末要离开,请 Lenny 过来给你的猫 Snuggles 一些牛奶。莱尼把你的钥匙带到你家,但他不知道住在街对面的坏人布拉德正看着他,还看到你早点离开。

现在 Lenny 去上班了,他没有锁房子。通常这不是问题,因为莱尼过着非常简单的孤独生活,几乎没有财产,但布拉德知道他有你的钥匙。布拉德偷了你的钥匙,去偷了你全新的电视,而在你的房子里,他找到了朗达的钥匙(他也偷了),然后去偷了她的电视。他把两把钥匙放回他找到它们的地方,然后带着两台电视回家。现在莱尼回家了,当他来给你的植物浇水时,他惊呆了,发现电视不见了,房子也上了锁。他立即报警,怀疑 Lenny,因为他有钥匙。

即使您是一个善良且值得信赖的人,也不要成为 Lenny,锁上您的房子(API 密钥)。

编辑:关于电子应用程序可能出现什么问题的问题。想象一下,我丢失了我的 Twitter API 密钥。现在布拉德开始制作仿冒应用程序。它与我的非常相似,如上所述,从 Twitter 的角度来看,他的应用程序与我的应用程序没有区别。也许 API 密钥不仅具有发布权限,它还具有删除权限。现在,Brads 仿冒应用程序可以删除人们的 Twitter 帐户并发布恶意软件或其他内容。布拉德是这样做的人,但 Twitter 来找我,指责我运行垃圾邮件机器人。他们预防性地禁用了我的 API 密钥,现在我所有的合法客户都非常生气,并质疑我应用程序的其他区域的安全性。我的名誉受损,人们说我的应用程序被“感染”了,因为推文显示为我的应用程序而不是 Brads 应用程序发布的。如果 Twitter 确定您无法确保密钥安全,他们可能会停止向您发放新密钥。

【讨论】:

  • 是的,我知道 Brad 实际上是你不想成为的人,但 Lenny 仍然很天真,因为他知道自己不是坏人,所以他不锁门。这不是关于你是一个好人或坏人,而是关于如果其他人可以穿你的皮肤一天会做什么。
  • 谢谢吉姆,这是一个很好的答案!我仍然不清楚如果这些密钥的访问权限受到限制,有人会造成什么损害。如果与他们一起您只能发布消息,那么您可以做的最糟糕的事情就是发布消息,在我看来这不是很酷的黑客攻击或类似的东西......
  • 嗨,Mattia,我添加了更多信息,说明如果您的密钥泄露会发生什么。
  • 谢谢吉姆!我终于明白了!
猜你喜欢
  • 2012-10-03
  • 2015-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-05
  • 2016-08-04
  • 2019-12-19
  • 2018-11-26
相关资源
最近更新 更多