Salut à tous
Après certaine reflection et analyse, je trouve que deployer aujourd'hui des application en client/serveur est dangereux en terme sécurité, et doit même être interdit.
Je rappelle d'abord que j'entend par client/serveur, l'architecture ou les postes clients sont en communication directe avec la base de donnée.
Alors ce qui se passe souvent, une bonne partie de la logique metier se trouve sur le poste client. Alors pirater devient très simple. imaginer par exemple que sur un poste client une application java est deployé sous forme d'un fichier archive "monappli.jar". il me suffit d'écrire un programme où "monappli.jar" sera dans le classpath, et j'aurais alors accès à toutes les classes de "monappli.jar" et je pourrais executer certaine methode dont normalement je ne devrais avoir accès. Or très souvent les régles de sécurités sont définies au niveau du code de contrôle de l'acquisition de donnée et rarement au niveau de toute les methodes publics de l'application. Combien de personnes ici ecrivent systématiquement les codes de contrôle de sécurité à l'entrée de toutes leurs methodes public?
Un autre problème, les postes clients sont en contact direct avec la BD, et la BD contient souvent des données sensibles et importante d'une entreprise. S'il y a une faille de sécurité sur la BD, un utilisateur peut l'exploiter, puisqu'il est en connexion directe avec la BD.
Pour ces raisons et bien d'autre, je trouve que si on doit developper une application d'entreprise, on doit impérativement le faire suivant une architecture n-tiers. Si on a déjà une application développée suivant une architecture client/serveur, on doit deployer cette application suivant une architecture 3-tiers en utilisant Citrix/Terminal Server/VNC etc..
Partager