2012-02-04 6 views
4

Je construis une application que j'ai l'intention de distribuer via le Mac App Store. J'utiliserai les achats intégrés pour permettre aux utilisateurs d'acheter des «crédits» qu'ils peuvent consommer dans l'application. J'utiliserai les API IAP d'Apple pour gérer le côté des transactions monétaires, mais je me demande comment faire pour stocker en toute sécurité le solde actuel des crédits. De toute évidence, je voudrais éviter aux utilisateurs "intelligents" de jouer avec les fichiers de mon application sur le disque pour augmenter le nombre de crédits, donc au moins j'ai besoin de crypter ce fichier. Mais même cela ne suffit pas, car un utilisateur peut simplement restaurer à partir d'une copie de sauvegarde pour rétablir leur solde créditeur.Quelles sont mes options pour implémenter un système de crédits virtuels pour une application Mac?

Une option évidente est d'exécuter mon propre serveur Web et de me connecter à l'application pour chaque transaction, mais cela semble lourd. J'ai cherché des services de monnaie virtuelle pour iOS (puisque c'est beaucoup plus courant dans les applications iOS), mais la plupart (tous?) Ont un angle de marketing croisé avec eux, me forçant à mettre des annonces dans mon application. Je ne veux pas. Je serai heureux de payer pour un service avec une API simple, à condition qu'elle soit totalement transparente pour mes utilisateurs. Par exemple. Je ne veux pas que mes utilisateurs doivent s'inscrire pour un compte sur le site Web d'une tierce partie.

Quelles sont mes options ici? Aucun conseil?

Répondre

1

Si vous voulez réellement une sécurité réelle, vous devez utiliser un serveur. Peu importe le type de cryptographie que vous effectuez côté client, les utilisateurs peuvent toujours réinitialiser l'état de l'application, puis ajouter le reçu pour l'IAP que vous allez ensuite valider. En bref, ils peuvent toujours effacer la mémoire des téléphones qu'ils ont consommé ces crédits. Si ce qu'ils achètent est seulement dans l'application (c.-à-d. Sa fonctionnalité déverrouillée par programme) et n'est pas fourni par un serveur/service externe, alors un utilisateur suffisamment motivé (probablement avec un téléphone jailbreaké) pourrait simplement modifier votre code pour fournir cette fonctionnalité. Vous ne pouvez donc pas avoir de véritable sécurité dans ce cas. Votre meilleur pari est juste obfuscation.

Questions connexes