Précédent   Forum du club des développeurs et IT Pro > Java > Développement Web en Java > Servlets/JSP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 03/12/2012, 18h26   #1
JohnSheppard
Invité régulier
 
Inscription : avril 2011
Messages : 33
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 33
Points : 7
Points : 7
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
JohnSheppard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/12/2012, 20h40   #2
fxrobin
Membre Expert
 
Avatar de fxrobin
 
Homme
Formateur JAVA / XML
Inscription : novembre 2007
Messages : 849
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 : 849
Points : 1 277
Points : 1 277
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 ...
fxrobin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 14h00   #3
JohnSheppard
Invité régulier
 
Inscription : avril 2011
Messages : 33
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 33
Points : 7
Points : 7
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' ?

Citation:
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 ^^)
JohnSheppard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2012, 18h55   #4
fxrobin
Membre Expert
 
Avatar de fxrobin
 
Homme
Formateur JAVA / XML
Inscription : novembre 2007
Messages : 849
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 : 849
Points : 1 277
Points : 1 277
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 ...
fxrobin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2012, 19h32   #5
JohnSheppard
Invité régulier
 
Inscription : avril 2011
Messages : 33
Détails du profil
Informations forums :
Inscription : avril 2011
Messages : 33
Points : 7
Points : 7
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 ?
JohnSheppard est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 10h22.


 
 
 
 
Partenaires

Hébergement Web