Bonjour,

Dans le cadre du développement d'une application mobile utilisant le Framework IONIC ( Et du coup AngularJS) je dois développer une API permettant aux utilisateurs de se connecter, de s'inscrire et d'acceder aux differents elements de l'application !

Tout fonctionne parfaitement mais l'API n'est pas du tout sécurisée...

Pour le moment, il y a un système de Token pour gérer l'utilisateur qui se renouvelle à chaque connexion ( J'ai entendu dire qu'il faut aussi la faire expirer au bout de X temps pour éviter des problèmes de type "Man in the middle", si vous avez plus d'infos ça serait sympa :) !

Mais actuellement, n'importe quoi possédant l'adresse de l'API peut effectuer des requêtes du moment qu'il possède le token de l'utilisateur... Je voudrais donc savoir comment sécuriser cette partie pour éviter des problèmes futurs.

Les infos qui transites :

Login (Numéro de téléphone, mot de passe ) et retourne son token ainsi que le statut
Register (Toutes les infos que l'utilisateur doit inscrire ) retourne un statut

Bon et après il y a une floppé de données pas forcement sensible à part l'email , le numero de telephone et le solde du porte-monnaire ( Qui peut-être dépensé )

J'ai entendu parlé de OAuth1 , OAuth2 mais j'ai l'impression que le processus est super lourd... Alors si vous avez des idées un peu plus légère et sécurisante, je suis preneur :) !

Merci !

4 réponses


orion
Réponse acceptée

Salut,

Je te conseil d'utilisé le jwt, moi c'est ce que j'ai fait pour le développement d'une app mobile (ionic).

orion
Réponse acceptée

Attend à aucun moment tu identifie ta requete.

Je te conseil d'utilisé OAuth2, ou les json web token.

Avec jwt, tu peux créer un login réelle (même avec OAuth) qui une fois valide génera un token signé qui te permettra donc te faire les futures requêtes avec.
Et en plus tu peux choisir combien de temps ton token est valide, automatiquement une fois qu'il expire il est considéré comme invalide ou même si quelqu'un à essayer de le manipulé

http://jwt.io/

Bonjour,
le plus simple serait d'utiliser une table qui contient des clé d'api et de filter les requetes (s'il n'y a pas un token avec une clé api valide dans le header tu rejete).
Les requetes ressembleraient a ça:

curl -X GET -H "Authorization: Token token=UNJ-VDcj6vSS3gOn5l6xSpC5osuL-bn3" http://ton.api/path/to/resource
down-lad
Auteur

Merci beaucoup pour vos réponses, je vais opter pour JWT ! Orion, il y a moyen de te contacter ? Pour avoir quelques conseils pour l'app Ionic :x ? !