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

Delphi Discussion :

TMS Web Core et accès aux BDD : protection


Sujet :

Delphi

  1. #1
    Membre régulier
    TMS Web Core et accès aux BDD : protection
    Bonjour,

    quelqu'un connaît-il un moyen pertinent de protéger l'accès aux bases de données en utilisant TMS Web Core ?
    Merci. Cordialement. Gilles
    Windows, Linux, mac OS X ► Qt - FMX - Lazarus || Androïd, iOS ►FMX - Qt - Windev Mobile - Autres

  2. #2
    Expert éminent sénior
    Si c'est du Web, la protection de la DB est déjà assurée* par l'aspect multi-tiers
    (*ça dépend l'hébergeur et l'architecture du DataCenter)

    le Client Web ne voit que le Serveur Web
    le Serveur Web (ses instances load-balancées) est généralement le seul* à voir le Server DB (accès limité en Port et IP)
    (* le seul avec les outils d'administration et de monitoring)


    TMS Web Core, ça ressemble à IntraWeb.
    Ce n'est pas un outil de protection mais tout dépend ce que l'on appelle protection?

    Est-ce juste l'accès limité ?
    Cela se gère par les routeurs et via le SGBD (Qui, Quoi, Où)

    Imaginons, que tu aies une faille malgré tout, un mdp qui traine dans un fichier conf
    Il faut chiffrer les données, c'est ta couche applicative Serveur (Delphi DataSnap, PHP, JS ...) qui se chargent de déchiffrer les données ou compare des empreintes si c'est un hashage plutôt

    Et si le pirate n'as pas eu le mpd du SGBD mais accès à la machine hôte, le SGBD peut lui même chiffrer les données dans ses fichiers (en plus du chiffrement applicatif)

    Tout ça c'est que la partie DB

    Pour le client web,
    - HTTPS c'est un début
    - authentication OAUTH2 pour éviter que le MDP et Login transitent en même temps (le token sert ensuite pour savoir les droits de l'utilisateur)
    - Chiffrement de données dans le REST, je sais que cela existe, avec des clés (fichier certificat locaux par exemple, une tannée à déployer) ... ça c'est "TMS XData" qui doit assurer quelques fonctionnalités
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre expérimenté
    TMS Web Core génère des pages web avec du Javascript.

    On n'accède pas à des bases de données depuis un projet TMS Web Core (à part une base en local dans le navigateur s'il est compatible) : on accède à des services en ligne qui fournissent l'accès aux données. Des composants permettent de le faire en REST sous la même forme que l'on a l'habitude dans les projets Delphi / C++Builder classiques, à savoir dataset / datasource.

    Le code Javascript généré en mode déploiement est obfusqué mais reste lisible puisque c'est du texte et les navigateurs proposent des outils de débogage, donc n'importe qui ayant du courage pourra faire ce qu'il veut côté client. C'est le cas pour tous les sites internet côté navigateur web.

    L'accès à la base de données ne se fait que par des programmes gérant une API REST ou pas côté serveur, c'est donc de ce côté que l'on doit protéger la base de données en ne laissant pas n'importe qui appeler les API sans avoir le droit de le faire.
    HTTPS, mots de passe (idéalement chiffrés pour ne pas transiter en clair), codes d'accès unique (2FA), session en cookie ou dans les appels sont donc nécessaires, comme pour tout serveur internet mettant des données à disposition.

  4. #4
    Membre régulier
    Bonjour,

    merci pour vos réponses. Je reste cependant assez dubitatif.
    Cordialement. Gilles
    Windows, Linux, mac OS X ► Qt - FMX - Lazarus || Androïd, iOS ►FMX - Qt - Windev Mobile - Autres

  5. #5
    Membre émérite
    Citation Envoyé par Selzig Voir le message
    Bonjour,

    merci pour vos réponses. Je reste cependant assez dubitatif.
    Cordialement. Gilles
    Et avec les autres solutions (php, Java, …) vous protégez comment l'accès à la BDD ? A moins de programmer comme un cochon la base de données n'est jamais en relation directe avec le client…
    On peut même carrément blinder la sécurité en mettant la bdd derrière un firewall avec mappage de port ce qui fait que même si par miracle (ou mauvaise programmation) un client indélicat arriverait à récupérer les infos de connexions à celle ci depuis le serveur web il ne pourrait strictement rien en faire à moins d'avoir un accès complet au serveur, et alors là ce n'est pas tms webcore php ou autre .NET ou java qui pourront faire quelque chose…

    @++
    Dany

###raw>template_hook.ano_emploi###