IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

javascript et la s�curit� ?


Sujet :

JavaScript

  1. #1
    Membre tr�s actif Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    D�tails du profil
    Informations personnelles :
    �ge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par d�faut javascript et la s�curit� ?
    Bonjour.
    Voici un probl�me de s�curit� avec javascript. Par exemple
    une fonction :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function modifierRDV(action,codRDV,etaRDV){
     
    	dtRDVo=getObjectById("dtRDV").value;
    	alert(dtRDVo);
    	heurMnt=getObjectById("heurRendeVou").value;
    	reqe="RDVou.do?action="+action+"&codRDV="+codRDV;
     
    //fonction qui envoie et récupère les données 
     
        envoyerReq(reqe,'divRDVs',false);
     
        affichRDVs();
    }
    le probl�me est que si un utilisateur lit ce script et qu'il met dans la barre d'adresse :
    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 .

  2. #2
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    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 - Mon Blog 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

    Venez sur le Chat de D�veloppez !

  3. #3
    Membre tr�s actif Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    D�tails du profil
    Informations personnelles :
    �ge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par d�faut
    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

  4. #4
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Bonjour,
    tu as d� louper la derni�re phrase de SpaceFrog :
    Citation Envoy� par SpaceFrog Voir le message
    il faut tester les donn�es cot� serveur.
    C'�tait la plus importante

    A+

  5. #5
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Citation Envoy� par yacine.dev Voir le message
    Y a-t-il une possibilit� d'emp�cher les clients de charger les scripts js ?
    Ben si tu veux que les scripts soient ex�cut�s, il faut bien qu'ils soient charg�s
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  6. #6
    Membre tr�s actif Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    D�tails du profil
    Informations personnelles :
    �ge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par d�faut
    Citation Envoy� par E.Bzz Voir le message
    Bonjour,
    tu as d� louper la derni�re phrase de SpaceFrog :
    C'�tait la plus importante

    A+
    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?

  7. #7
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par yacine.dev Voir le message
    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?
    Pas vraiment, non.
    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+

  8. #8
    Membre tr�s actif Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    D�tails du profil
    Informations personnelles :
    �ge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par d�faut validation formulaire cot� serveur ou cot� client
    Citation Envoy� par E.Bzz Voir le message

    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+
    oui j'ai compris,merci.

  9. #9
    Membre tr�s actif Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    D�tails du profil
    Informations personnelles :
    �ge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par d�faut send(data) de ajax
    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.

  10. #10
    Inactif
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    117
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 117
    Par d�faut
    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.

  11. #11
    Membre tr�s actif Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    D�tails du profil
    Informations personnelles :
    �ge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par d�faut
    Bonjour
    Citation Envoy� par Gatsu35 Voir le message
    OU PAS.

    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 ?
    .
    �a je ne sais pas comment?

    Citation Envoy� par Gatsu35 Voir le message
    OU PAS.


    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.
    ce n'est pas le probl�me de droit car il peut avoir le droit et il veut valider un rendez-vous non figurant dans la page comme j'ai expliqu� (message pr�cedent)il change la valeur de param�tre codrendezvou et voila le serveur va verifier les droits (ok)et il validera le rendezvous dont le code est envoy� par le client(validRDV.do?codeRendezvous=valeur que je veux) et non pas le rendez-vous affich� dans la page

    -----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?

  12. #12
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Citation Envoy� par yacine.dev Voir le message
    y' a pas une diff�rence entre l'envoi dans la barre d'adresse et l'envoie d'ajax?
    Il peut y avoir des diff�rences si tu d�finis des headers sp�cifiques dans ta requ�te AJAX (typiquement, X-Requested-With, comme le fait jQuery).
    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 !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  13. #13
    Membre tr�s actif Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    D�tails du profil
    Informations personnelles :
    �ge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par d�faut
    ok,merci � vous tous

  14. #14
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    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+

  15. #15
    Membre tr�s actif Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    D�tails du profil
    Informations personnelles :
    �ge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par d�faut utiliser la session mieux qu'int�roger la bd?
    Oui ,c'est exactement ce que je fais maintenant ,je teste la validit� de requ�te et si il n'est pas logique exil valide un rendes-vous d�ja valid� =>le serveur affiche une page d'erreur).Mais je ne dois pas enregister la liste de rendez-vous dans la session il faut dans chaque modification interroger la base de donn�e(select les rendez-vous...)pourquoi??
    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.

  16. #16
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Les 2 probl�mes sont diff�rents :
    • si il tente de modifier un rendez-vous que tu n'avais pas pr�vu et m�moris� au moment de la g�n�ration de la page => "Vous n'avez pas le droit de ..."
    • si il modifie un rendez-vous que tu avais autoris� au moment de la g�n�ration, mais que des modifications effectu�es entretemps ont rendu non modifiables => "Il n'est plus possible de modifier ce rendez-vous parce que ..."

    Dans le 1� cas, tu peux faire le contr�le directement � r�ception de la requ�te sur le serveur (en comparant avec ta liste m�moris�e).
    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+

  17. #17
    Membre tr�s actif Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    D�tails du profil
    Informations personnelles :
    �ge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par d�faut
    Citation Envoy� par E.Bzz Voir le message

    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 ...")
    donc je dois faire deux contr�le le premier celui avec la liste m�moris� => le deuxi�me test ,quand je mets � jour le champs etaRendevou
    (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.

  18. #18
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par yacine.dev Voir le message
    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.
    Oui, mais c'est ton appli, donc �a c'est � toi de voir
    Ce n'est pas un probl�me technique mais fonctionnel ...

    A+

  19. #19
    Membre tr�s actif Avatar de yacine.dev
    Inscrit en
    Octobre 2009
    Messages
    177
    D�tails du profil
    Informations personnelles :
    �ge : 37

    Informations forums :
    Inscription : Octobre 2009
    Messages : 177
    Par d�faut
    donc en tous cas je dois me connecter � la base de donn�e pour tester ,c'est obligatoire ?

  20. #20
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Citation Envoy� par yacine.dev Voir le message
    donc en tous cas je dois me connecter � la base de donn�e pour tester ,c'est obligatoire ?
    D'apr�s tes descriptions, �a semble incontournable oui

    A+

Discussions similaires

  1. Javascript et s�curit�.
    Par defacta dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 03/01/2010, 12h35
  2. R�ponses: 15
    Dernier message: 17/07/2009, 22h18
  3. R�ponses: 0
    Dernier message: 15/07/2009, 11h16
  4. R�ponses: 16
    Dernier message: 18/10/2006, 22h52
  5. [javascript][s�curit�] signature
    Par soulhouf dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 16/09/2005, 12h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo