我正在开发一个使用社交登录的应用程序,以便在Facebook,Twitter等上发布消息,我读了很多线程,说OAuth密钥应保留在服务器端以确保安全性的原因。
我知道这听起来像是一个愚蠢的问题,但为什么会这样呢?如果我创建了一个只允许管理登录和消息帖子的Facebook应用程序,可能发生的最糟糕的事情是,一些坏人获取存储在前端的密钥并使用它们登录并发布消息,但是没别的,所以他不能做任何伤害......
显然,我仍然试图解决整个过程的工作原理,所以我还不是专家。
为了完整性'为了整个程序将成为一个Electron桌面应用程序,我试图通过不使用发布消息的服务器来降低成本,甚至没有AWS上的无服务器后端。
提前感谢您的回答!
答案 0 :(得分:1)
尝试从邻居的信任角度考虑它。
你的邻居Lenny住在左边的房子里,另一个住在右边的邻居Rhonda。你已经认识Rhonda好几年了,她相信你会保留她关键的副本,因为她被锁定或丢失了她的钥匙。
Lenny很新,但你和他一起喝过酒,他似乎是个合理的人。你不知道的是Lenny从一个小镇搬到了这里,并没有把他的门锁上。你要离开这个周末,让Lenny过来给你的猫咪喂一些牛奶。 Lenny带着你的钥匙到你的房子,但他不知道住在街对面的Brad the Bad Guy正在看着他并且看到你早点离开。
现在Lenny出去工作,并没有锁定他的房子。通常情况下这不是问题,因为莱尼过着相当简单的孤独生活,只有很少的财产,但布拉德知道他有你的钥匙。布拉德偷走了你的钥匙,偷走了你的全新电视,而在你的房子里,他找到了朗达的钥匙(他也偷了)然后去偷了她的电视。他把两把钥匙都放回原处,然后带着两台电视回家。现在Lenny回家了,当他来浇灌你的植物时,他发现电视机已经消失,房子被锁住了。他打电话给立即怀疑Lenny的警察,因为他有钥匙。
即使你是一个善良和信任的人,也不要被Lenny锁住你的房子(api钥匙)。
编辑:关于电子应用程序可能出现什么问题的问题。想象一下,我丢失了我的Twitter API密钥。现在布拉德去做一个仿冒应用程序。它与我的非常相似,如上所述,他的应用程序与Twitter的观点无法区分。也许API密钥不仅仅具有发布权限,它还具有删除权限。现在Brads仿冒应用程序可以删除人们的Twitter帐户并发布恶意软件或其他内容。布拉德是这样做的,但Twitter来找我并指责我运行垃圾邮件机器人。他们预防性地禁用我的API密钥,现在我的所有合法客户都非常生气,并质疑我的应用程序的其他区域的安全性。我的声誉受到影响,人们说我的应用程序被“感染”,因为推文显示为我的应用程序发布而不是Brads应用程序。如果Twitter确定您无法保证您的密钥安全,他们可能会停止向您发放新密钥。