Comment garder les clés de l'API secrètes lorsque vous utilisez Javascript côté client?

Par exemple, consultez ce plugin Facebook .

Du côté client, la clé API est clairement visible. Qu'est ce qui empêche un autre utilisateur d'obtenir cette clé et d'utiliser cette fonctionnalité sur un autre site?

Je pensais qu'une mise en œuvre très naïf serait de vérifier le domaine de la demande, mais des choses comme celles-ci sont faciles à falsifier.

Si je devais créer quelque chose de similaire, comment puis-je assurer la sécurisation du processus d'authentification?

Je veux que le travail de ce travail soit du côté client, bien qu'une certaine forme d'authentification de serveur soit nécessairement sûre? Tous les liens ou conseils seront grandement appréciés.

Mettre à jour

Question similaire sur les clés API que j'ai trouvé utiles.

En trois mots: validation côté serveur. FB lui-même lancera une erreur lorsque vous utilisez une clé incorrecte pour le site donné. La clé API n'est pas censée être secrète (par opposition à la clé secrète).

Je ne l'ai pas fait moi-même, mais je sais que le type d'attaque dont vous vous inquiétez est appelé Cross-Site Request Forgery (CSRF). L' article de Wikipédia sur ce qui donne quelques conseils sur la façon de l'empêcher.