|
Publicité | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() taha yacine Inscription : octobre 2009 Messages : 175 ![]() |
Bonjour.
Voici un problème de sécurité avec javascript. Par exemple une fonction : Code :
nom de site web/reqe="RDVou.do?action="+action+"&codRDV="+codRDV; le serveur va exécuter la requête. Comment éviter d'avoir un tel scénario ? Bref : l'utilisateur connait le chemin pour exécuter une opération qui nécessite d'avoir effectué une condition en préalable (ex : se connecter, remplir une zone de texte) mais puisque l'utilisateur connait le chemin il ne va pas remplir la zone de texte... il va essayer d'envoyer dans la barre d'adresse l'url donc interroger directement le serveur sans passer par le script. Si vous n'avez pas compris ma question merci de le signaler. Merci d'avance .
__________________
Tant d'avoir une belle chose de vouloir la partager,avant de poser des questions techniques en informatique ,il y'en a plusieurs qui se posent pourquoi une vie assez courte ?pourquoi pas rester pour toujours ? et beaucoup sont perdus . |
||
|
|
00
|
|
|
#2 |
![]() ![]() Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur Inscription : mars 2002 Messages : 29 074 ![]() |
passe les données en post ...
mais ça ne resoudra pas le problème de transmission des donnés car on peut tout de même envoyer des données en post ... Ce n'est pas au niveau javascript que cela se sécurise ... a toi de prevoir ce que l'utilisateur peut faire et comment l'en en empecher ... il faut tester les données coté serveur.
__________________
Ma page Developpez Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts) Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir... Votre post est résolu ? Alors n'oubliez pas le Tag ![]() ![]() réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() taha yacine Inscription : octobre 2009 Messages : 175 ![]() |
Même si je fais l'envoi en post ; puisque l'envoi est à partir du script js, l'utilisateur peut les charger et connaitre les urls qui se trouvent dans mes fonctions puis utiliser ces urls .
Que dois-je faire? Y a-t-il une possibilité d'empêcher les clients de charger les scripts js ? Sachant que j'appelle des scripts externes dans mes pages jsp ou html. Merci d'avance
__________________
Tant d'avoir une belle chose de vouloir la partager,avant de poser des questions techniques en informatique ,il y'en a plusieurs qui se posent pourquoi une vie assez courte ?pourquoi pas rester pour toujours ? et beaucoup sont perdus . |
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2007 Messages : 9 037 ![]() |
|
|
|
00
|
|
|
#5 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 12 879 ![]() |
Citation:
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() taha yacine Inscription : octobre 2009 Messages : 175 ![]() |
Mais c'est très fastidieux de vérifier coté client et coté serveur.y'a pas de solution?pourrons dire que c'est l'un des défaut d'utiliser javascript?
__________________
Tant d'avoir une belle chose de vouloir la partager,avant de poser des questions techniques en informatique ,il y'en a plusieurs qui se posent pourquoi une vie assez courte ?pourquoi pas rester pour toujours ? et beaucoup sont perdus . |
|
|
00
|
|
|
#7 | |
![]() ![]() Inscription : janvier 2007 Messages : 9 037 ![]() |
Citation:
C'est peut être toi qui te fais une mauvaise idée de Javascript S'il n'y a qu'un seul des 2 contrôles à faire, c'est sur le serveur. Le contrôle Javascript n'est là que pour le confort de l'utilisateur, mais ne peut (et ne doit) pas être considéré comme une sécurité. A+ |
|
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() taha yacine Inscription : octobre 2009 Messages : 175 ![]() |
oui j'ai compris,merci.
__________________
Tant d'avoir une belle chose de vouloir la partager,avant de poser des questions techniques en informatique ,il y'en a plusieurs qui se posent pourquoi une vie assez courte ?pourquoi pas rester pour toujours ? et beaucoup sont perdus . Dernière modification par yacine.dev ; 17/03/2010 à 19h09. |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() taha yacine Inscription : octobre 2009 Messages : 175 ![]() |
Bonjour
je cherche vraiment a bien sécuriser mon application voila une faille qui peut être très dangereux sur un application web. urlx: dans mon application ce url est toujours exécuté via une fonction ajax. je cherche à refuser urlx quand sa prevenace est de la barre d'adresse. pourquoi? c'est la seule différence que j'ai trouvé entre un utilisateur tolérant et l'autre (celui que si je le trouvrai je le supprimerais de la vie(avec une l'instruction sonNom.delete; )celui qui veut exécuter des requêtes par la barre d'adresse sans passer par les fonctions javascript et donner de fausses paramètres (je ne parle pas de type) comme il est sité au dessus ,valider des rendez-vous non affichés dans la page en changeant la valeur de paramètres codrendezvou mais par exemple : dans une page j'affiche les rendez-vous à valider seulement rdv num=1 bouton :valider rdv num=2 bouton :valider(cet bouton appelle une fonction en envoyant avec, le num de rendezVous,la fonction le recupéré puis l'envoie dans urlx pour valider ce rendez-vous mais on pourra valider le rendez-vous numero 4(qui n'est pas dans la liste des rendez vous à valider) en envoyant la urlx via barre d'adresse et changant la valeur de paramétre coderendezvous. le serveur n'a qu'a recevoir l'url et teste les paramètres et exécuter le code c'est ici que je me suis dis il faut savoir si la requête est envoyée par ajax c'est à dire c'est la page qu'a envoyé la requête sinon ne rien exécuter. je sais pas si avec send(data) de ajax je pourrais distinguer entre les paramètres concaténés avec l'url et ceux dans req.send(data); merci de me proposer quelques idée comme même ça reste une référence pour ceux qui cherche la même chose.
__________________
Tant d'avoir une belle chose de vouloir la partager,avant de poser des questions techniques en informatique ,il y'en a plusieurs qui se posent pourquoi une vie assez courte ?pourquoi pas rester pour toujours ? et beaucoup sont perdus . |
|
|
00
|
|
|
#10 |
|
Inactif
Inscription : novembre 2002 Messages : 117 ![]() |
OU PAS.
Tu ne réfléchis pas du tout comme il faut réfléchir là. Tu veux détecter si l'url viens d'une action Ajax ou pas, mais si je te dis que je peux moi meme simuler que cette URL vient d'une action Ajax ? tu fais quoi ? Tu dois obligatoirement sur ton fichier tester les droits de l'utilisateur, et si cet utilisateur a le droit de faire cette action ou pas. et donc en utilisant les informations de session que tu as en ta possession. Et c'est pas compliqué coté PHP. |
|
|
00
|
|
|
#11 | ||
|
Membre du Club
![]() taha yacine Inscription : octobre 2009 Messages : 175 ![]() |
Bonjour
Citation:
Citation:
-----liste de rendez-vous a valider------ codRendezvou :1---- bouton valider y' a pas une différence entre l'envoi dans la barre d'adresse et l'envoie d'ajax?
__________________
Tant d'avoir une belle chose de vouloir la partager,avant de poser des questions techniques en informatique ,il y'en a plusieurs qui se posent pourquoi une vie assez courte ?pourquoi pas rester pour toujours ? et beaucoup sont perdus . |
||
|
|
00
|
|
|
#12 | |
![]() ![]() ![]() Didier MouronvalDéveloppeur Web Inscription : juin 2008 Messages : 12 879 ![]() |
Citation:
Ceci dit, comme le souligne Gatsu35, cela n'empêchera pas de pouvoir "simuler" ta requête avec des mauvaises valeurs. Ce qui revient à ce que tout le monde te dit depuis le début : tu ne peux pas contrôler avec JavaScript les données qui sont envoyées au serveur, c'est donc coté serveur que tu dois t'assurer que ce que tu reçois est valide !
__________________
Pas de question technique par MP ! Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi ! Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi ! Mes formations video2brain : La formation complète sur JavaScript • JavaScript et le DOM par la pratique • PHP 5 et MySQL : les fondamentaux Mon livre sur jQuery
|
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() taha yacine Inscription : octobre 2009 Messages : 175 ![]() |
ok,merci à vous tous
__________________
Tant d'avoir une belle chose de vouloir la partager,avant de poser des questions techniques en informatique ,il y'en a plusieurs qui se posent pourquoi une vie assez courte ?pourquoi pas rester pour toujours ? et beaucoup sont perdus . |
|
|
00
|
|
|
#14 |
![]() ![]() Inscription : janvier 2007 Messages : 9 037 ![]() |
Dans ton cas, lors de la génération de la page, tu pourrais mémoriser sur le serveur (variable session) les rendez-vous que l'utilisateur aura le droit de modifier ainsi que le type de modification.
Ainsi, lorsque ton serveur reçoit la requête, tu n'as plus qu'à comparer. Si elle ne fait pas partie de la liste, tu renvoies un message d'erreur, sinon, c'est tout bon. Dans ce cas, quelques soient les tentatives de contournement, il ne peut modifier que ce qui est prévu. Si il s'amuse à bidouiller dans la barre d'adresse, c'est son problème : tant que la requête reçue est valide il n'y a plus de danger A+ |
|
|
00
|
|
|
#15 |
|
Membre du Club
![]() taha yacine Inscription : octobre 2009 Messages : 175 ![]() |
Oui ,c'est exactement ce que je fais maintenant ,je teste la validité de requéte et si il n'est pas logique ex
il peut que les informations de base de donnée changent et la session conserve des anciennes donnée (comme les réservations des places d'avion). dans ce cas le serveur teste sur des données anciennes ce qui engendre à une perturbation de validation. le fait d'interroger la base de donné chaque fois ,ça n'alourdit pas la vitesse surtout que j'utilise hibernate?. Que vous en dites?? Merci.
__________________
Tant d'avoir une belle chose de vouloir la partager,avant de poser des questions techniques en informatique ,il y'en a plusieurs qui se posent pourquoi une vie assez courte ?pourquoi pas rester pour toujours ? et beaucoup sont perdus . |
|
|
00
|
|
|
#16 |
![]() ![]() Inscription : janvier 2007 Messages : 9 037 ![]() |
Les 2 problèmes sont différents :
Dans le 2° cas, puisqu'il aura passé le 1° contrôle, c'est sûrement au moment de mettre à jour la base de données que le problème sera détecté et que tu pourras renvoyer le message approprié (la fin de la phrase "parce que ...") A+ |
|
|
00
|
|
|
#17 | |
|
Membre du Club
![]() taha yacine Inscription : octobre 2009 Messages : 175 ![]() |
Citation:
(if(etaRendevou=="nonModifiable") => renvoyez à la page d'erreur) si oui mais il peut qu'un rendez-vous au moment de la génération est non modifiable et au moment de l'envoie de requête sera modifiable donc on passera pas le premier test.
__________________
Tant d'avoir une belle chose de vouloir la partager,avant de poser des questions techniques en informatique ,il y'en a plusieurs qui se posent pourquoi une vie assez courte ?pourquoi pas rester pour toujours ? et beaucoup sont perdus . |
|
|
|
00
|
|
|
#18 | |
![]() ![]() Inscription : janvier 2007 Messages : 9 037 ![]() |
Citation:
Ce n'est pas un problème technique mais fonctionnel ... A+ |
|
|
|
00
|
|
|
#19 |
|
Membre du Club
![]() taha yacine Inscription : octobre 2009 Messages : 175 ![]() |
donc en tous cas je dois me connecter à la base de donnée pour tester ,c'est obligatoire ?
__________________
Tant d'avoir une belle chose de vouloir la partager,avant de poser des questions techniques en informatique ,il y'en a plusieurs qui se posent pourquoi une vie assez courte ?pourquoi pas rester pour toujours ? et beaucoup sont perdus . |
|
|
00
|
|
|
#20 |
![]() ![]() Inscription : janvier 2007 Messages : 9 037 ![]() |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com