新标题:保护API密钥:在客户端JavaScript中隐藏的方法
P粉521748211
P粉521748211 2023-08-24 10:22:46
0
2
641
<p>现在我正在编写一个客户端JavaScript应用程序,该应用程序向USPS价格计算器API发出请求。为了进行此请求,我需要在请求的XML中提供我的API用户ID。标签如下所示:<code><RateV4Request USERID="ThisIsWhereMyUserIdGoes"></code>。我的问题是:有没有办法在JavaScript中提供我的用户ID,同时仍然隐藏它,不让用户看到客户端文件。目前,我唯一的解决方案是在我的服务器上创建一个包含用户ID的PHP文件,然后在客户端JavaScript中使用AJAX请求将其存储在全局变量中。代码如下:</p> <pre class="brush:php;toolbar:false;">var userID; $.get("/secrets.php", function( data ) { userID = data; });</pre> <p>这种方法足以防止我的API用户ID被我的应用程序用户看到吗?还有其他什么办法可以做到这一点?</p>
P粉521748211
P粉521748211

全部回复(2)
P粉872182023

如果您在2020年阅读此页面,并且出于某种原因(节省托管成本等)不想开发服务器端代码,无服务器函数可能是解决方案。

这也从服务器端调用第三方API,但您不必开发一个完整的服务器端API代理。

Netlify有相关文档。我猜其他提供商如AWS Lambda、Google Cloud Function也提供类似的功能,但不确定。

https://github.com/netlify/code-examples/tree/master/function_examples/token-hider

优点 无需管理服务器

缺点 供应商锁定

P粉245276769

简而言之:不,你不能在客户端应用程序中保护你的API密钥。

这篇文章详细介绍了一些细节

两个选择:

  • 在服务器端进行API调用,然后从那里向客户端提供信息
  • 要求客户端使用自己的API密钥
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板