IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Android Discussion :

sécuriser webService JSON


Sujet :

API standards et tierces Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 93
    Par défaut sécuriser webService JSON
    Bonjour à tous,

    Je dois créer une application android qui communiquera avec une base de données mysql sur un serveur en ligne.
    J'utilise donc un webservice REST qui me renvoie du JSON.

    Jusque là tous va fonctionne bien le problème c'est que je passe à ce webservice une requête sql en POST ce qui veut dire que si quelqu'un passe une requête également il pourra récupérer toutes les données qui contiennent des adresses mail par exemple. Je dois donc sécuriser ce webservice.

    J'ai pensé à 2 solutions, identifier l'appareil qui envoie la requête avec un identifiant unique de l'appareil Android (Settings.Secure.ANDROID_ID). Ou alors ajouter dans le code source un mot de passe qui permettrait d'identifier l'application qui fait la requête. Seulement je ne sais pas si il est possible pour une personne mal intentionné de récupérer ce mot de passe stocké en dure dans le code.

    Sinon auriez vous d'autres solutions à me proposer ? Par exemple chiffré le résultat de la requête ou je ne sais quoi ?

    Merci de m'avoir lu et de m'apporter une réponse si vous pensez en avoir les compétences

  2. #2
    Membre expérimenté
    Homme Profil pro
    Consultant BigData
    Inscrit en
    Juillet 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant BigData

    Informations forums :
    Inscription : Juillet 2009
    Messages : 129
    Par défaut
    Stocker un mot de passe en dur dans le code est de toute façon une mauvaise façon de faire Le mot de passe ne doit jamais être visible

    Ce que tu peux faire, c'est :
    - Passer ton service en HTTPS si ce n'est pas déjà fait. ça ne va pas résoudre tous tes problèmes de sécurité, mais déjà une partie.
    - Authentifie tes utilisateurs. Comme cela, si un jeton d'authentification est envoyé à travers ton service, tu peux contrôler ce que l'utilisateur à le droit de voir ou non avant de lui envoyer une réponse.

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 93
    Par défaut
    Le https n'est pas encore fait mais c'est prévu pour la suite des opérations
    Sinon pour l'identification par mot de passe ce n'est pas possible, l'utilisateur n'a pas à saisir des informations pour récupérer ces données (précisé dans le cahier des charges). Mais si le mot de passe est en dur dans le code, personne ne pourra le lire si ?
    Petite précision également, l'appli ne sera pas disponible sur le market.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Consultant BigData
    Inscrit en
    Juillet 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Consultant BigData

    Informations forums :
    Inscription : Juillet 2009
    Messages : 129
    Par défaut
    Si le mot de passe est précisé en dur dans l'application, alors il est récupérable en décompilant le code
    De plus, pour qu'un mot de passe soit un minimum sécurisé, il doit être changé "fréquemment"... Chose que tu ne pourras pas faire si tu mets le mot de passe en dur.

    Donc si je résume : les données doivent être sécurisées de sorte que seuls certaines personnes aient accès à certaines données, mais il n'est pas possible de prévoir un système pour déterminer qui se connecte (principe d'authentification) ?

    Si ton backend est une API, tu peux aussi prévoir que en backend, un clé d'application soit générée pour chaque client et que cette clé puisse être obtenue via un appel sur le serveur nécessitant un process de validation. Ensuite, chaque appel comprendra une référence à cette clé afin de valider que l'utilisateur à les droits. C'est un peu plus complexe à mettre en oeuvre, mais ça permettrait de sécuriser un minimum tes données.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 93
    Par défaut
    Le principe n'est pas réellement ca, en fait l'application ne sera pas distribué sur le store et seul quelques appareils disposeront de cette application. Et les données doivent être récupérer uniquement de ces appareils. C'est pour ca que j'avais pensé à un identifiant unique pour chaque appareil. C'est cet identifiant qui réaliserai l'authentification en fait.

  6. #6
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Oui mais cet identifiant:
    1. Il faut l'obtenir (donc un code sur la bécane qui va fournir l'identifiant au webservice pour enregistrement... Cette partie là reste toujours problématique).
    2. L'identifiant "Android" peut changer (le miens change à chaque remise à 0 du terminal).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Windows Phone 8] Récupérer les données depuis un webservice Json toutes les 30 secondes
    Par arrakis42 dans le forum Windows Phone
    Réponses: 7
    Dernier message: 25/08/2013, 10h47
  2. Logiciel gratuit pour tester des Webservice Json (rest)
    Par thierryler dans le forum Services Web
    Réponses: 6
    Dernier message: 19/02/2013, 20h54
  3. webService JSON : problème lors de l'appel depuis un autre site
    Par Pat_AfterMoon dans le forum Services Web
    Réponses: 1
    Dernier message: 22/11/2011, 01h22
  4. Webservices - JSON - JQUERY
    Par aurelien.tournier dans le forum Services Web
    Réponses: 3
    Dernier message: 07/11/2010, 11h32
  5. WebService JSON retourne du XML
    Par d1g-2-d1g dans le forum Services Web
    Réponses: 5
    Dernier message: 14/11/2009, 00h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo