Vous ne pouvez pas rejeter efficacement les connexions à moins de fournir à chaque client une clé privée que vous pouvez révoquer individuellement. Mais c'est probablement exagéré. Vous n'avez pas besoin d'une solution pare-balles si la plupart des gens ne prennent pas la peine de tirer une balle.
C'est une question de sécurité, alors décrivons un modèle de menace et des stratégies d'atténuation.
Supposons que vous ayez une URL qui peut vous coûter cher (par exemple, le coût du traitement) et que vous souhaitez la protéger à la fois d'une simple attaque DoS et des applications de copie.
Utilisez SSL pour cacher la connexion d'être facilement analysée. Utilisez un numéro de port non-obviuos, une séquence de redirection, un échange de cookies pour compliquer légèrement la connexion avant de faire la partie coûteuse de la demande. Utilisez du code secret intégré à votre application pour informer le serveur qu'il doit accepter la connexion.
Maintenant, quelqu'un ne peut pas apprendre l'URL coûteuse à atteindre simplement en exécutant un renifleur de paquets ou en regardant des chaînes de type URL dans votre code. Un attaquant potentiel doit décompiler votre application.
Vous ne pouvez pas vraiment protéger votre code contre la décompilation et / ou l'exécution sous un débogueur. L'attaquant finit par apprendre la clé secrète et la séquence de connexion.
Vous remarquez que vous commencez à recevoir des demandes de rouge à votre URL coûteuse: soit sous la forme d'une attaque, soit sous la forme d'une application de copie qui doit accéder à votre service pour fonctionner, ou peut-être qu'un code d'exploitation est publié publiquement. Cependant, vous ne pouvez pas distinguer une demande frauduleuse d'une demande légitime.
Créez une mise à jour mineure gratuite de votre application, avec une clé secrète différente. Il doit frapper une URL coûteuse différente qui fournit les mêmes données que l'URL coûteuse compromise. Pendant un certain temps, rendez les deux URL accessibles.
Regardez votre base d'utilisateurs passer à la version mise à jour. Limitez l'URL coûteuse compromise et éventuellement 404. Vous venez d'atténuer une faille de sécurité, j'espère sans trop en perdre. Retour à la case départ.
Avertissement: je ne suis pas un expert en sécurité.