Envoyer une string comme paramètre dans un XMLHttpRequest (ESP32) - Javascript/Node.js - Programmation
Marsh Posté le 15-01-2023 à 17:12:44
Oui là c'est plus que moyen, vu que le MDP est vérifié côté client on peut contourner très facilement.
J'y connais rien en prog web, mais en gros tu pourrais faire un form action="post" etc qui envoye le MDP à l'ESP, ce dernier le vérifie (contre un MDP stocké en dur ou en passant par une fonction de hashage genre SHA256) et retourne soit une page "allez vous en" soit la vraie page au navigateur.
EDIT: POST plutôt que GET pour ne pas avoir le MDP dans l'URL. Bon après je suppose que c'est un système interne non connecté à internet, dans ce cas c'est pas hyper-critique. Dans le cas contraire je déconseille de bricoler soi-même et prendre une solution qui a fait ses preuves!
Marsh Posté le 15-01-2023 à 17:37:04
Ah post plutôt que get, je vais regarder
Non pas de risques de sécurité
Merci !
Marsh Posté le 15-01-2023 à 18:21:41
Je veux dire pas de gros risque nécessitant une solution adaptée comme tu dis
Marsh Posté le 15-01-2023 à 18:54:12
Je crois que j'ai compris ce qu'il faut faire dans le JS :
Code :
|
Mais du coté C++, sur l'ESP, je fais comment pour récup ma string (mon MDP) ? J'ai ça actuellement avec les GET
Code :
|
Edit : j'ai édité comme un cochon
Marsh Posté le 15-01-2023 à 20:16:59
Je connais ni les ESP ni le C++, mais ton code doit utiliser une lib toute faite non? Dans ce cas direction la doc. Je vois HTTP_GET, peut-être il suffit de changer ça en HTTP_POST et ajuster un peu le code pour vérifier le MDP?
Marsh Posté le 15-01-2023 à 21:08:22
Verifier le MDP oui ça c'est pas un problème
Pour récup la string avec POST je vais aller voir la doc de la lib effectivement
Marsh Posté le 16-01-2023 à 13:25:19
Ça y est ça marche ! Avec un GET ! (c'était plus simple, en tous cas sur les codes que j'ai lus)
Dans le JS :
Code :
|
et dans le C++
Code :
|
Marsh Posté le 16-01-2023 à 14:26:17
Et si le MDP est faux? Il faudrait rajouter un else { Blabla; request->send(code_erreur) }. Je sais plus, je crois que c'est 401 ou 403 le bon code.
Marsh Posté le 16-01-2023 à 14:36:39
Ahh intéressant ça, pour avoir un retour dans le navigateur c'est ça et afficher "Wrong pass" ?
Quand j'avais le MDP dans le JS je faisait ça justement mais là je pouvais plus...
Je vais voir ça un de ces 4
Merci
Marsh Posté le 16-01-2023 à 15:56:33
Oui voila. Je confond toujours HTTP 401 et 403, l'un c'est "access denied" et l'autre "authentification required". A toi de chercher/voir ce qui est correct.
Marsh Posté le 16-01-2023 à 20:15:10
Ca marche !
Faut que je trouve un code pas utilisé, là j'ai mis 300 au pif pour tester et je trouverais dommage d'utiliser un code d'erreur)
Je mets le code C++ en entier :
Code :
|
et dans le JS
Code :
|
Marsh Posté le 16-01-2023 à 20:28:48
Lt Ripley a écrit : Faut que je trouve un code pas utilisé, là j'ai mis 300 au pif pour tester et je trouverais dommage d'utiliser un code d'erreur) |
Bah ils sont pourtant la pour ça non?
Marsh Posté le 16-01-2023 à 21:28:39
Je sais pas, je me dis que c'est pas une erreur, c'est un mdp refusé
Marsh Posté le 16-01-2023 à 23:54:27
J'aurais dû dire status code plutôt que code d'erreur. 200 == tout va bien, 500 == le serveur est HS, ... et 401/403 == mauvais MDP. C'est fait pour.
EDIT: et 418 pour dire que c'est pas le bon pot... (blague pour connaisseurs )
Marsh Posté le 17-01-2023 à 09:14:30
ReplyMarsh Posté le 17-01-2023 à 14:15:27
Pour info : https://fr.wikipedia.org/wiki/Liste_des_codes_HTTP
Marsh Posté le 17-01-2023 à 16:28:26
ReplyMarsh Posté le 17-01-2023 à 19:15:59
Tiens, j'ai un truc bizarre :
Mon MDP fait 4 chiffres
Si je fais n'importe quoi, y compris 1 seul chiffre sauf le 2 j'ai bien toujours mon 401, parfait
Si j'envoie le chiffre 2 j'ai un 300 : choix multiple
Si j'envoie n'importe quel autre chiffre j'ai bien le 401
Marsh Posté le 17-01-2023 à 19:32:56
T'aurais pas un 300 qui traîne encore dans le code pour commencer? Ce que tu peux faire c'est utiliser les outils développeur de ton navigateur aussi pour voir ce qui transite réellement comme requête(s) et/ou débugger le côté client avec la console JS.
Marsh Posté le 17-01-2023 à 19:35:31
Ah mais c'est vrai c'est ce que j'avais mis comme code en premier. Mais c'est ouf que ça le fasse que avec le chiffre 2
Je regarde
Marsh Posté le 17-01-2023 à 19:44:02
J'ai pas de retour "officiel" comme quand j'ai le 401, je suis obligé de l'afficher moi même avec console.log
2 -> 300
3 -> 401
Ca fait pareil quand je tape rien, on dirait que le 2 n'est pas pris en compte, mais dans mon MDP ya un 2 et il fonctionne bien
Edit : j'ai 300 null part dans mon code
Marsh Posté le 17-01-2023 à 19:49:47
Tu peux vérifier dans l'onglet réseau si tu as bien une seule requête avec le MDP complet et pas une requête pour chaque chiffre ou ce genre de truc?
Marsh Posté le 17-01-2023 à 20:08:03
Le serveur.on dans le c++ n'est pas appelé
C'est complètement ouf
Je vais essayer un autre ESP32 identique
Marsh Posté le 17-01-2023 à 20:13:24
Ahhh j'ai regardé dans l'onglet reseau, je vois "disk cache" à chaque fois que je tape 2 ou rien contrairmeent à toutes les autres combinaisons de chiffres
Mais je sais pas ce que ça signifie exactement
Marsh Posté le 17-01-2023 à 20:20:50
Bon ben ça vient de mes navigateurs, Vivaldi sur PC et Kiwi sur android (2 forks de Chrome)
Sur FireFox sur PC ou j'ai que rarement accédé à mon ESP j'ai pas ce comportement
Une histoire de cache qui pourait bien fiche le bazar
Marsh Posté le 17-01-2023 à 20:31:36
J'ai vidé le cache du navigateur et ça marche
Rat de combat je te dois une fière chandelle encore une fois, merci !
Marsh Posté le 17-01-2023 à 21:42:13
T'assures un max !
Mon pote m'a dit d'ajouter dans les requêtes un param (à coté du MDP donc) , qui sert pas et qui change tout le temps, comme l'heure en millisecondes, pour pas que le nav foute les requêtes en cache !
Marsh Posté le 17-01-2023 à 22:27:30
C'est une possibilité, sinon il me semble qu'il y a un header HTTP "no-cache" ou ce genre de truc. Mais j'y connais rien, le web c'est pas du tout mon truc.
Marsh Posté le 15-01-2023 à 16:37:10
Salut !
Sur du matos maison (qui est en fonction) à base d'ESP32 je fais ça, dans le JS :
J'ai fait une page web, je me connecte dessus avec mon navigateur, je tape le code et s'il est bon ça lance une fonction (open)
Mais du coup je fonctionne comme ça : lors du chargement HTML+CSS+JS j'ai une methode qui va chercher le MDP sur l'ESP. Et donc le MDP est dans le navigateur, c'est moyen, je préfèrerais envoyer le MDP tapé à l'ESP et check si c'est le bon mot de passe sur l'ESP et non dans le JS du navigateur.
Savez vous comment je peux faire ?
---------------
Mes apps | Viens coder | Mon topal de vente