J'essaierai de mettre des thématiques en place sur ce blog, ce qui permettra de les mettre en avant par la suite (je pense qu'il y a maintenant assez de contenu sur ce blog pour le faire).
Et note que pour ta question, "l'input caché" ne l'est qu'aux yeux de l'utilisateur lambda: le contenu de cet input peut être altéré sans problème par un utilisateur avancé (et le JS va donc récupérer n'importe quelle valeur). Par principe, pour le JS, la valeur piochée dans l'input du DOM est une donnée extérieure au JS, donc, elle ne doit pas être considérée comme "sûre" ni comme "intègre". Ce n'est pas tant "never trust the user", ou "never trust the client", mais bien "never trust the outside" qu'il faut appliquer, et le DOM (la page HTML) est le "outside" du JS.
Pour le reste, ce JS va en faire quoi de cette valeur? Il va l'envoyer dans une requête Ajax n'est-ce pas? Cette requête va être récupérée et traitée par le serveur? Donc, là aussi, pour le serveur, le JS est "outside". On a donc deux points d'altération possible: modifier le DOM (le input caché) pour tromper le JS, ou modifier le JS pour tromper le serveur (ce qu'on peut aussi faire sans modifier le JS, en passant par cURL, c'est à dire en envoyant directement une requête HTTP au serveur; d'ailleurs, le message de 'MesGenoux' qui est probablement apparu sur ton tchat a été envoyé par cURL).
L'important, que ce soit pour la sécurité ou pour "coder propre", c'est de bien savoir délimiter les frontières de chaque composant (osef un peu des "responsabilités" en fait, ce qui compte, c'est savoir où un composant s'arrête et où il démarre). Partant de là, pour la sécurité, tout ce qui se trouvera hors de cette frontière devra être vérifié et validé avant d'être utilisé dans le composant en question.
Et je suis ravi de voir que mes articles ont pu te servir et t'aider
Et note que pour ta question, "l'input caché" ne l'est qu'aux yeux de l'utilisateur lambda: le contenu de cet input peut être altéré sans problème par un utilisateur avancé (et le JS va donc récupérer n'importe quelle valeur). Par principe, pour le JS, la valeur piochée dans l'input du DOM est une donnée extérieure au JS, donc, elle ne doit pas être considérée comme "sûre" ni comme "intègre". Ce n'est pas tant "never trust the user", ou "never trust the client", mais bien "never trust the outside" qu'il faut appliquer, et le DOM (la page HTML) est le "outside" du JS.
Pour le reste, ce JS va en faire quoi de cette valeur? Il va l'envoyer dans une requête Ajax n'est-ce pas? Cette requête va être récupérée et traitée par le serveur? Donc, là aussi, pour le serveur, le JS est "outside". On a donc deux points d'altération possible: modifier le DOM (le input caché) pour tromper le JS, ou modifier le JS pour tromper le serveur (ce qu'on peut aussi faire sans modifier le JS, en passant par cURL, c'est à dire en envoyant directement une requête HTTP au serveur; d'ailleurs, le message de 'MesGenoux' qui est probablement apparu sur ton tchat a été envoyé par cURL).
L'important, que ce soit pour la sécurité ou pour "coder propre", c'est de bien savoir délimiter les frontières de chaque composant (osef un peu des "responsabilités" en fait, ce qui compte, c'est savoir où un composant s'arrête et où il démarre). Partant de là, pour la sécurité, tout ce qui se trouvera hors de cette frontière devra être vérifié et validé avant d'être utilisé dans le composant en question.
Et je suis ravi de voir que mes articles ont pu te servir et t'aider