Neuer Titel: API-Schlüssel schützen: Versteckte Methoden in clientseitigem JavaScript
P粉521748211
P粉521748211 2023-08-24 10:22:46
0
2
646
<p>Im Moment schreibe ich eine clientseitige JavaScript-Anwendung, die Anfragen an die USPS-Preisrechner-API stellt. Um diese Anfrage zu stellen, muss ich meine API-Benutzer-ID im angeforderten XML angeben. Das Tag sieht so aus: <code><RateV4Request USERID="ThisIsWhereMyUserIdGoes"></code>. Meine Frage ist: Gibt es eine Möglichkeit, meine Benutzer-ID in JavaScript bereitzustellen und sie dennoch vor dem Benutzer zu verbergen, der die Client-Datei sieht? Derzeit besteht meine einzige Lösung darin, auf meinem Server eine PHP-Datei zu erstellen, die die Benutzer-ID enthält, und diese dann mithilfe einer AJAX-Anfrage im Client-JavaScript in einer globalen Variablen zu speichern. Der Code lautet wie folgt: </p> <pre class="brush:php;toolbar:false;">var userID; $.get("/secrets.php", function( data ) { Benutzer-ID = Daten; });</pre> <p>Ist dieser Ansatz ausreichend, um zu verhindern, dass meine API-Benutzer-ID von Benutzern meiner Anwendung gesehen wird? Gibt es eine andere Möglichkeit, dies zu tun? </p>
P粉521748211
P粉521748211

Antworte allen(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密钥
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage