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 :

formulaire sans attribut 'action' et javascript


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut formulaire sans attribut 'action' et javascript
    Bonjour a tous,


    J' aimerais, pouvoir envoyer un formulaire 'discretement', c'est a dire :
    je ne souhaite pas que l' url de destination soit visible dans le code source generé.

    Je ne sais pas trop comment faire, je compte passer par un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" name="simulation" onSubmit="return verif_form();">
    et dans ma fonction javascript tester uniquement la validée des infos.

    en fait ma question principale est, comment renvoyer vers le meme fichier .php sans l' indiquer dans le code source generé.


    Merci d'avance pour les idées que vous pourrez apporter à la discution.

    Cyanure

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 908
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 908
    Points : 14 819
    Points
    14 819
    Par défaut
    L'attribut action est obligatoire pour que ta page soit valide, même s'il est vide.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <form action="" id="truc" onsubmit="return taFonction()">

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function taFonction(){
       ...
       document.getElementById('truc').action = 'tonlien';
       ...
    }

  3. #3
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Si tu ne veux pas que la page se rafraichisse ou ne change de page, une solution serait de passer par <form action="javascript:taFonction()">
    Puis de faire l'envoi en AJAX (dans taFonction)

    Si tu fais juste ca par souci de cacher l'url, alors la méthode de Bisounours sera efficace... mais pas à 100% vu que l'url sera écrite en clair dans le JS...

    Une solution serait de faire un "encodage" de l'url.

    Je vais poster d'ici peu une source qui permet de faire de l'encodage en JavaScript

  4. #4
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Quoi que vous fassiez, vous n'arriverez de toute façon pas à cacher l'url puisque soit, elle est présente dans le source HTML soit dans le source JS et même si tu fais un encode, le paramètre que tu passes à encode c'est l'url justement...D'autre part, l'encode sert plutôt à échapper les caractères significatifs tels que (&) plutôt qu'à réellement masquer l'url. Le seul moyen de cacher l'url finale c'est d'implémenter l'url rewriting au niveau du web server afin que par exemple "uneurl" soit en réalité "uneurlréelleauniveauduwebserver".

  5. #5
    Membre expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Points : 3 239
    Points
    3 239
    Par défaut
    Citation Envoyé par stephane eyskens
    Quoi que vous fassiez, vous n'arriverez de toute façon pas à cacher l'url puisque soit, elle est présente dans le source HTML soit dans le source JS et même si tu fais un encode, le paramètre que tu passes à encode c'est l'url justement...D'autre part, l'encode sert plutôt à échapper les caractères significatifs tels que (&) plutôt qu'à réellement masquer l'url. Le seul moyen de cacher l'url finale c'est d'implémenter l'url rewriting au niveau du web server afin que par exemple "uneurl" soit en réalité "uneurlréelleauniveauduwebserver".
    Oui, mais je crois que son but est que l'utlilisateur lambda ne trouve pas l'url...

    Exemple : deleteEntry.aspx ==> pas spécialement envie que l'utilisateur trouve l'url et en fasse mauvais usage...

    Une fois encodée l'url devient ilisible (mon code sort par exemple une suite de chiffre)... sauf pour un developpeur qui va faire exécuter la fonction de décodage et demander à voir le résultat... mais contre ca on ne peut rien... une protection n'est jamais efficace contre celui qui sait comme elle est faite

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    merci pour les reponses, j' y vois plus clair

    Mon but est effectivement de cacher l' URL de destination du formulaire aux utilisateurs.


    FremyCompany ton idée d' encoder l' URL me parait pas mal, tu penses a un truc du style :

    formulaire.php?url_encodee=4564141354sZgodaXXrCQ en URL de formulaire, ou url_encodee contient L URL de destination encodée ?

    merci pour les reponses

  7. #7
    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 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 644
    Points : 66 671
    Points
    66 671
    Billets dans le blog
    1
    Par défaut
    a part faire un chiffrage de l'url dans un script externe...

    mais de toute façon comme à se fait coté client... à moins d'envoyer l'action sur une page php avec une redirection chiffrée ...
    ou encore comme dit plus haut ne bidouillant avec ajax ...

  8. #8
    Futur Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    merci encore pour les pistes

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. gestion dynamique du formulaire sans Javascript
    Par reneguenon dans le forum Struts 1
    Réponses: 14
    Dernier message: 03/11/2008, 16h10
  2. Réponses: 4
    Dernier message: 22/12/2007, 10h59
  3. nombre de valeurs de l'attribut action d'un formulaire
    Par alexnet dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/11/2007, 23h26
  4. Réponses: 14
    Dernier message: 27/07/2006, 15h40
  5. Récupérer l'attribut action d'un formulaire
    Par boubouh dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 04/02/2006, 16h19

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