【问题标题】:Steam API Key in Client-Side JavaScript客户端 JavaScript 中的 Steam API 密钥
【发布时间】:2024-06-26 10:05:01
【问题描述】:

最近我使用 Steam API 创建了一个 Steam 应用程序,它在很大程度上需要 Steam 密钥才能使用。我的应用程序完全使用客户端 JavaScript 编写,并且需要以某种方式将密钥放入其中。但是 Steam 禁止用户在公共场所发布他的 API,我相信源代码是公开的。

是否有任何编码方式,因此无法获取普通密钥,但仍保留将其放入网站调用的功能(例如 www.example.com/?api=key)。

我一直在研究的一个示例是将其编码为 base 64,但我不确定这是否满足所需的隐私。代码如下:

alert(btoa("key"));

之后,我粘贴了我在示例中收到的警报消息

var api=atob("key");

这隐藏了普通站点的密钥,但可以使用类似的东西轻松解码

alert(atob("key"));

是否有我可以使用的库,或者某种不需要服务器端 JavaScript(例如 node.js)的方式来执行此操作。

【问题讨论】:

  • 不,您必须使用服务器端处理来完成这项工作。
  • 你不能在客户端安全地编码任何东西。
  • 正如 Kishore 所说。此外,您的 base64 编码将无法跨浏览器。
  • 啊,该死的。嗯 - 值得一试。如果它迫使我转向 node.js,我将能够更快地制作其他应用程序。

标签: javascript steam


【解决方案1】:

正如许多 cmets 所指出的,一旦任何东西进入客户端并且服务器应该信任客户端,就无法确保它的安全。

在您的示例中,特别是使用函数aTobbToa,您正在创建一个新的APIKEY,它的行为与原始APIKEY 一样,就像APIKEY' 一样,最终是不安全的。

解决方案是让代码和APIKEY 完全不受用户操纵。这是一个秘密,因此应尽可能安全和“隐藏”。

【讨论】:

    最近更新 更多