Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité régulier
    Inscrit en
    avril 2011
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : avril 2011
    Messages : 40
    Points : 8
    Points
    8

    Par défaut Bloquer des URL directes (filtres Java)

    Bonjour,

    Je suis en train de développer une application web en J2EE gérant différents profils.
    J'ai mis en place des filtres me permettant de rediriger des personnes essayant d'entrer directement une URL dans le navigateur mais n'étant pas connectées pour cela.

    J'ai également mis en place une page web avec un div qui se met à jour lorsque l'utilisateur clique sur des liens (sans recharger toute la page). J'utilise pour cela JQuery (une fonction onclick sur les liens qui fait charge le nouveau div et retourne false pour que le navigateur ne fasse rien).
    en clair:
    * la page index.jsp contient du blabla, des liens, et mon div qui se met à jour
    * les pages contenuLien1.jsp, contenuLien2.jsp etc.. contiennent chacune le contenu de mon div qui se met à jour.

    Du coup, quand l'utilisateur clique sur les liens, le div se met à jour bien comme il faut. L'URL visible dans le navigateur reste inchangée, même si en réalité une autre page est affichée (il voit qu'il est sur index.jsp alors qu'il affiche contenuLien1.jsp par exemple)

    Je voudrais empêcher l'utilisateur de rentrer directement l'URL de mes contenus (s'il rentre dans la barre d'adresse /contenuLien1.jsp, ça doit le renvoyer vers index.jsp et ne pas juste afficher le contenu du div en mode moche)

    Sauf que si je mets un filtre qui redirige les pages 'contenuLien...', eh bien ça ne marche plus en mode normal (lorsque l'utilisateur clique sur les liens)

    Vous voyez ce que je veux dire ou il faut que j'essaye de préciser un peu plus ?
    Quelqu'un connait-il une solution pour m'aider svp ?

    Merci d'avance

  2. #2
    Membre Expert Avatar de fxrobin
    Homme Profil pro
    Formateur JAVA / XML
    Inscrit en
    novembre 2007
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur JAVA / XML
    Secteur : Service public

    Informations forums :
    Inscription : novembre 2007
    Messages : 862
    Points : 1 320
    Points
    1 320

    Par défaut

    Salut,

    dans tes "pages" secondaires, il faut que tu fasses un test de "REFERRER" :
    http://www.javaservletsjspweb.in/200...l#.ULz_ti4e5DE

    si le REFERRER n'est pas ta page "index.jsp" alors tu rediriges vers l'index.jsp
    sinon c'est que c'est bon.

    Si l'utilisateur tape directement l'URL, alors le REFERRER est null.

    D'ailleurs, si tu aimes bien les filters, tu peux faire cette mécanique très facilement avec un Filter ce qui t'évitera de le mettre sur toutes tes pages secondaires.
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  3. #3
    Invité régulier
    Inscrit en
    avril 2011
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : avril 2011
    Messages : 40
    Points : 8
    Points
    8

    Par défaut

    Bonjour,

    Merci pour cette idée effectivement je n'y avais pas pensé ! Je vais tester ça dès que possible (j'ai peur cependant que cela ne fonctionne pas en cas de clic successif sur plusieurs liens du menu)
    En effet au tout début nous sommes sur index.jsp, mais lorsque l'utilisateur va cliquer sur un lien et raffraichir le 'div', le referrer ne va-t-il pas changer en 'contenuLien1.jsp' ?

    D'ailleurs, si tu aimes bien les filters, tu peux faire cette mécanique très facilement avec un Filter ce qui t'évitera de le mettre sur toutes tes pages secondaires.
    Je ne comprends pas bien ce que tu veux dire par là :s
    Pour l'instant j'ai un filtre qui s'applique sur /* et qui me permet de m'assurer que la personne est connectée pour accéder à l'application
    Et j'ai un second filtre qui empeche un profil1 d'aller sur des pages d'un profil2 et vice-versa

    La seule faille que je vois pour l'instant, c'est que si un profil1 est connecté, alors il a accès aux pages de profil1 et il peut donc rentrer directement une url du type /profil1/contenuLien1.jsp (au lieu de rester gentiment sur profil1/index.jsp ^^)

  4. #4
    Membre Expert Avatar de fxrobin
    Homme Profil pro
    Formateur JAVA / XML
    Inscrit en
    novembre 2007
    Messages
    862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Formateur JAVA / XML
    Secteur : Service public

    Informations forums :
    Inscription : novembre 2007
    Messages : 862
    Points : 1 320
    Points
    1 320

    Par défaut

    Citation Envoyé par JohnSheppard Voir le message
    Bonjour,
    En effet au tout début nous sommes sur index.jsp, mais lorsque l'utilisateur va cliquer sur un lien et raffraichir le 'div', le referrer ne va-t-il pas changer en 'contenuLien1.jsp' ?
    effectivement.

    Mais dans ton cas, si le REFERRER == NULL (ou vide je sais plus) ... ça veut dire que l'URL a été accédée directement (soit par favori, soit par saisie de l'utilisateur dans la barres d'adresse) et donc je pense que ça te suffira non ?
    Moins on code, moins il y a de bug ... et vice-versa ainsi qu'inversement ...

  5. #5
    Invité régulier
    Inscrit en
    avril 2011
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : avril 2011
    Messages : 40
    Points : 8
    Points
    8

    Par défaut

    Bonjour,

    désolé pour le temps de réponse, ce projet personnel a dû être mis entre parenthèses quelques temps !

    Du coup j'ai réfléchi à une autre solution qui permettrait de beaucoup moins s'embêter avec des filtres ou des referrer etc... (ta solution fonctionnerait très bien cela dit =), mais je voudrais optimiser encore plus), et donc j'ai une nouvelle question liée à ce problème d'URL.

    J'ai vu une application fonctionner de la manière suivante:
    * lorsqu'on passe la souris sur un lien, on voit le chemin de la page qui va être ouverte (jusque là tout va bien)
    * en revanche, quel que soit l'endroit où nous sommes dans l'application, l'URL visible par le client est toujours la même ! Par exemple www.domaine.com/monAppli/
    Le client n'a pas d'autre choix que d'avoir cette URL (s'il rentre manuellement autre chose cela renvoie une erreur de page introuvable, et ce même si la page existe réellement !)

    Bref vous voyez le principe, je trouve ça vraiment pas mal pcq c'est sécurisé une bonne fois pour toute. Le client peut se ballader dans l'appli via les liens et pas autre chose => pas de bidouilles possibles !

    Bon alors le problème, c'est que je ne vois pas du tout comment faire ça avec ma petite application J2EE =) Des idées ?

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •