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

Delphi Discussion :

TMS Web Core et accès aux BDD : protection


Sujet :

Delphi

  1. #1
    Invité
    Invité(e)
    Par défaut 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

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 849
    Points
    24 849
    Par défaut
    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 expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    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
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    merci pour vos réponses. Je reste cependant assez dubitatif.
    Cordialement. Gilles

  5. #5
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    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

  6. #6
    Membre du Club

    Inscrit en
    Mars 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 15
    Points : 43
    Points
    43
    Par défaut
    Essayez Unigui FrameWork from FMSoft.
    Un super outil de développement qui ne changera pas vos habitudes de programmation avec Delphi.

    Tout se fait coté Serveur et votre connexion a la BD se fait exactement comme vous le faites (DBGrid, DataSource, DataSet).

  7. #7
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par moyzer Voir le message
    Essayez Unigui FrameWork from FMSoft.
    Un super outil de développement qui ne changera pas vos habitudes de programmation avec Delphi.

    Tout se fait coté Serveur et votre connexion a la BD se fait exactement comme vous le faites (DBGrid, DataSource, DataSet).
    Oui, mais non. UniGUI et TMS Web Core ne fonctionnent pas du tout de la même façon et UniGUI génère un serveur, comme IntraWeb, ce qui implique un type d'hébergement spécifique sur lequel l'installer (Windows et Linux étant pris en charge).

    TMS Web Core génère une page web et du JavaScript qu'on peut exécuter n'importe où, ce qui a un gros avantage (mais aussi les mêmes inconvénients que tout application web développée en JavaSCript).

    Côté conception, que ce soit IntraWeb, UniGUI ou TMS Web Core, on reste dans du Delphi, avec des composants visuels et non visuels, des propriétés, des événements, ...

    Chaque solution a ses spécificités, UniGUI n'est pas pertinent dans le cadre de cette discussion.

    Me demande où Gilles en est arrivé de ses réflexions sur ce sujet, comme Dany d'ailleurs.

Discussions similaires

  1. Embarcadero propose FireDAC pour l'accès aux Bdd
    Par John Colibri dans le forum Delphi
    Réponses: 0
    Dernier message: 01/03/2013, 06h56
  2. Exchange Web Services API : accès aux PJ
    Par calagan99 dans le forum C#
    Réponses: 1
    Dernier message: 06/12/2012, 12h15
  3. Réponses: 16
    Dernier message: 17/03/2007, 17h31
  4. [1.1] Accès aux méthodes 'protected' d'une dll
    Par Yodabis dans le forum ASP.NET
    Réponses: 8
    Dernier message: 02/02/2007, 16h10
  5. [VB6] [BDD] Optimisation de l'accès aux données
    Par LadyArwen dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 30/01/2003, 13h27

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