Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment puis-je autoriser l'accès à ma base de données MySQL uniquement à partir de mon application iOS ? (Utilisation de l'application Web comme passerelle vers la base de données)

Comme indiqué précédemment, il n'y a pas de sécurité à 100 % possible. Mais il existe plusieurs solutions qui mises ensemble donnent une grande sécurité.

HTTP

Comme vous le soulignez, c'est une partie importante , car elle empêche de renifler.

Séances

Utilisez des sessions et n'autorisez aucune requête sans session valide (sauf la première, qui doit authentifier l'application).

Empreinte digitale

Vérifiez l'agent utilisateur et définissez des en-têtes http supplémentaires pour obtenir une empreinte digitale unique pour votre application. ( Quelqu'un pouvait toujours renifler, mais il avait besoin d'utiliser curl ou similaire. )

Masquer les demandes

Créez votre chaîne de requête et appliquez une fonction de hachage. Le serveur doit implémenter la fonction inverse. ?43adbf764Fz au lieu de ?a=1&b=2

Crypter

Cela va encore plus loin. Utilisez un secret partagé pour calculer un hachage. Sur le serveur, répétez la même chose. C'est déjà une sécurité forte. Pour casser, il faut désosser votre application.

Utiliser un secret partagé unique

Vous dites que c'est une application pour iOS. Lors de l'installation, un jeton unique est généré par iOS. Demandez à votre application d'enregistrer ce jeton auprès de votre serveur. Ainsi, vous disposez d'un secret partagé fort unique pour chaque installation, et il n'y aurait aucun moyen de pirater votre application Web.