我开发了一个Web应用程序,该应用程序在AngularJS应用程序中利用Google登录。

因为client_id和api_key是用Java脚本编写的,所以我认为即使使用浏览器的开发控制台也很容易找到它们。

显然有可能“模糊” JS代码(例如How can I obfuscate (protect) JavaScript?),但是我担心的是:这真的使潜在的攻击者无法访问密钥吗?

如果没有,在这种情况下的最佳做法是什么?我听说过某种后端会使JS中编写的密钥变得晦涩难懂。一种“网关”

值得一提的是,我关心的不仅是Google API,还有我写的所有我不想成为“开源”的代码,除非我决定这样做

编辑:由于我不确定我的疑问是否完全清楚,这是我的实际问题

what methodology I can use to effectively prevent users "stealing" my keys? there exist any service which serves as gateway? shall I design one on my own?

最佳答案

这是否真的使潜在的攻击者无法访问
  按键


您可以压缩和/或混淆它,但是只要您的应用程序需要使用纯键,此过程就始终是可逆的。


  我写的所有我不想成为“开源”的代码,除非
  我决定这样做


选择JavaScript作为您的语言,选择浏览器作为您的平台,您已经决定使用开源。

您获得了代码的版权,因此您只需放置适当的许可证标头,然后知道赚钱的公司将不敢“窃取”您的代码。只是对您如何完成某件事感兴趣的人就不会经历颠倒压缩和/或混淆的麻烦。

编辑:非公共API密钥通常绑定到指定的引荐来源网址域。


  To prevent your key from being used on unauthorized sites, only allow referrals from domains you administer.

07-26 02:59