Bonjour.
Je viens de lire un article qui est l'exemple typique à ne pas suivre.
Cet article propose une méthode pour faire une application sécurisée en JS avec Extjs.
Mais la conception est surtout ce qu'il ne faut pas faire. Donc peu importe la librairie. Le principe mis en oeuvre repose sur AJAX.
Je ne jetterais pas la pierre à son auteur. Vous trouverez l'article ici.
voici le principe de l'application
Au démarrage, le serveur envoi une page HTML qui charge un JS qui affiche un formulaire de login.
Lorsque l'utilisateur le valide, une requête AJAX demande au serveur les informations sur l'utilisateur.
Lorsque la réponse arrive, le JS vérifie que l'utilisateur est autorisé et affiche l'interface de l'application.
C'est ce principe qu'il ne faut JAMAIS suivre.
La raison est très simple: n'importe quel utilisateur un peu bricoleur peut passer outre.
dans l'exemple de l'article il suffit de mettre un point d'arrêt dans le listing 3 ligne 29
Une fois la variable data créée, il suffit de positionner la valeur data.firstName pour être autorisé.
On peut toujours essayer de sécuriser ce code, cela ne changera jamais rien. Il sera toujours possible pour quelqu'un d'intervenir sur le traitement de la réponse et de passer outre.
De plus avant même que l'utilisateur ait tenté de se loger il possède déjà le code de l'application. Il peut donc l'analyser et invoquer des services directement sans être passé part une quelconque authentification.
C'est un principe de base du dev JavaScript: la sécurité est toujours assurée par le serveur.
Moins l'utilisateur a de code et d'info, moins il a de clefs pour hacker l'application.
Si vous envisagez une telle approche pour la sécurité de votre application, je ne peux que vous conseiller de revenir dessus. Pour assurer un max de sécurité, il faut que lorsque l'utilisateur ouvre l'application il n'obtienne que le strict minimum.
Et si l'authentification échoue, il faut qu'il n'ait aucune information supplémentaire.
A+JYT
Partager