最近我使用Steam API创建了一个Steam应用程序,它需要Steam Key在很大程度上使用。我的应用程序完全使用客户端JavaScript编写,需要以某种方式放置密钥。但是,Steam禁止用户在公共场所发布他的API,我相信源代码是公开的。
无论如何编码它,所以无法获得普通密钥,但仍保留将其置于网站调用中的功能(例如www.example.com/?api=key)。
我一直在看的一个例子是将它编码到base 64中,但我不确定这是否满足所需的隐私。代码是:
alert(btoa("key"));
之后我粘贴了
示例中的警告信息var api=atob("key");
这隐藏了来自普通网站的密钥,但可以使用类似
的内容轻松解码alert(atob("key"));
是否有我可以使用的库,或者某种不需要服务器端JavaScript(例如node.js)的方法来执行此操作。
答案 0 :(得分:0)
正如许多评论所指出的那样,一旦任何东西进入客户端,并且服务器应该信任客户端,就无法确保任何安全。
在您的示例中,特别是使用功能aTob
和bToa
,您正在创建的内容特别是创建了一个新的APIKEY
,其行为与原始APIKEY
相同,就像{ {1}}最终变得不安全。
解决方案是将代码和APIKEY'
仅由用户操纵。这是一个秘密,因此应尽可能保持安全和“隐藏”。