Nouveau titre : Protection des clés API : méthodes cachées dans JavaScript côté client
P粉521748211
2023-08-24 10:22:46
<p>En ce moment, j'écris une application JavaScript côté client qui envoie des requêtes à l'API du calculateur de prix USPS. Afin de faire cette demande, je dois fournir mon ID utilisateur API dans le XML demandé. La balise ressemble à ceci : <code><RateV4Request USERID="ThisIsWhereMyUserIdGoes"></code>. Ma question est la suivante : existe-t-il un moyen de fournir mon identifiant utilisateur en JavaScript tout en le cachant à l'utilisateur qui voit le fichier client. Actuellement, ma seule solution consiste à créer un fichier PHP sur mon serveur contenant l'ID utilisateur, puis à utiliser une requête AJAX dans le client JavaScript pour le stocker dans une variable globale. Le code est le suivant : </p>
<pre class="brush:php;toolbar:false;">var ID utilisateur;
$.get("/secrets.php", fonction( données ) {
ID utilisateur = données ;
});</pré>
<p>Cette approche est-elle suffisante pour empêcher que mon ID utilisateur API soit vu par les utilisateurs de mon application ? Y a-t-un autre moyen de faire ça? </p>
Si vous lisez cette page en 2020 et que vous ne souhaitez pas développer de code côté serveur pour quelque raison que ce soit (économies sur les coûts d'hébergement, etc.), les fonctions sans serveur pourraient être la solution.
Cela appelle également des API tierces côté serveur, mais vous n'avez pas besoin de développer un proxy API complet côté serveur.
Netlify dispose d'une documentation pertinente. Je suppose que d'autres fournisseurs comme AWS Lambda et Google Cloud Function offrent également des fonctionnalités similaires, mais je n'en suis pas sûr.
https://github.com/netlify/code-examples/tree/master/function_examples/token-hider
Avantages Pas besoin de gérer les serveurs
Inconvénients Verrouillage du fournisseur
En bref : Non, vous ne pouvez pas protéger vos clés API dans les applications clientes.
Cet article détaille quelques détails
Deux options :