PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 23 → Sécuriser la connexion à une base de données / Webservice
Sécuriser la connexion à une base de données / Webservice
Débuté par Meudes, 10 juil. 2018 13:33 - 3 réponses
Membre enregistré
7 messages
Posté le 10 juillet 2018 - 13:33
Bonjour à tous,
Etant donné qu'il est aisé de dé-compiler un apk, je me demande comment gérer
la connexion à une base de données distante ou un webservice muni d'un login et password directement via https.

J'aimerais avoir votre avis sur cette construction :

1/ Le login d'un utilisateur
Structure : un WebService (libre / sans password) https

Le webservice reçois un login et un password d'un membre inscrit en base.

Si utilisateur existe :
Le WebService créer un utilisateur sur la base HyperFile à atteindre (userHF) avec les bons droits.
Il renvoie les informations de connexions de l'utilisateur userHF au mobile. Une routine viendra supprimer le userHF après 24 Heures.
-> l'inscrit se connecte à la base via userHF, récupère les infos concernant les webservices à passwords.

Si non, il compte le nombre d'opérations sur le login et fait ce qu'il faut en cas d'activités type force brute.



2/ Inscription d'un nouvel utilisateur.
Structure : un WebService (libre / sans password) https possédant une clé ayant généré un buffer crypté.
Structure : appli mobile distribué, le buffer crypté

Le mobile envoie les informations de création d'un nouvel utilisateur au WebService.
Le WebService créé l'utilisateur si les message crypté dans le buffer crypté est correct.

Qu'en pensez-vous ? Est-se un construction pour écraser un mouche à coup de tank ?
N'y a t-il pas plus simple ?
Membre enregistré
823 messages
Popularité : +3 (3 votes)
Posté le 10 juillet 2018 - 18:04
Bonjour !
Moi j'utilise un système de token.

Lorsque l'utilisateur lance son appli, il doit entrer son login et sont mot de passe.
Ces infos sont envoyées au WebService.

Le webservice recoit les infos de connexions.
Il vérifie si une clé temporaire existe déja pour cet utilisateur, sinon il en génère une. Chaque clé à une durée de validité de X heures (à toi de voir !)
Le webservice renvoi la clé au mobile.
Le mobile stock la clé en mémoire.

Ensuite, dans chaque appel au webservice, le mobile envoi les infos + la clé.

Le webservice verifie si la clé est valide (clé existante ou non, clé expirée ou non etc..)
Si c'est ok il traite l'info et repond au mobile
Si pas Ok renvoi : Session expirée et le mobile retourne à la page de login.

La seule methode donc de mon webservice qui n'attend pas de clé est celle du Login.
Chaque clé étant liée au login de l'utilisateur, on peut facilement créer des logs avec cette clé sur l'activité reçue.

Pour le cryptage.. si le web service est en HTTPS on ne devrait pas trop avoir a s'en soucier.

Il doit peut etre meme avoir moyen de lier la clé a l'IMEI du portable afin d'éliminer tous risques ...
Message modifié, 10 juillet 2018 - 18:07
Membre enregistré
7 messages
Posté le 11 juillet 2018 - 18:24
Merci de ta réponse.

En fait, tu passes tout par webservice et je pense que c'est la solution la plus propre afin de gérer les déconnexions.
Il faudra que j'y passe ;-) . Ma couche d'affichages sera à revoir puisque je passe par la connexion à la base de données.


Concernant l'idée de ma clé de cryptage, c'est pour éviter un script d'inscription non attendu en boucle, afin d'éviter d'avoir des user avec des noms de sites X, :)
Posté le 12 juillet 2018 - 11:35
Tu peux aussi utiliser l’option à la génération du app qui crypte les chaînes et les noms de fonction