J'ai un service Web JSON que je ne souhaite fournir que pour certains sites. C'est un service qui serait appelé via JavaScript en utilisant JSONP. Comment pourrais-je prévenir (ou au mieux rendre plus difficile pour) les sites non autorisés d'y accéder? Exiger un utilisateur/mot de passe ne fonctionnera pas car cela serait clairement visible en JavaScript. Exemple: Mon service Web sur domain.com fournit des informations météorologiques, et je souhaite seulement que website.com et webpage.com puissent y accéder. Mais puisque le service Web est accessible via JavaScript, lazywebsite.com peut simplement afficher la source du site Web/page Web et copier/coller son code JavaScript.Protection d'un service Web JSON
Mes pensées à ce jour:
- Utilisez une clé API et enregistrer les
HTTP_REFERER
où le service est accessible à partir. Ce n'est pas idéal carHTTP_REFERER
n'est pas fiable. - Avez-website.com/webpage.com générer une clé côté serveur unique en utilisant un algorithme que je fournis, l'enregistrer dans une session, et l'utiliser comme une clé pour accéder au service Web. De cette façon, le jeton est uniquement enregistré pour ce visiteur spécifique et le JS ne peut pas être copié/collé. Le problème passe ensuite à website.com/webpage.com en protégeant leur page qui génère la clé unique.
Y a-t-il de meilleures solutions?