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

Servlets/JSP Java Discussion :

Interdire l'accès aux jsp


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Interdire l'accès aux jsp
    Bonjour,

    Mon application web utilise Struts (mais ma question peut s'appliquer à n'importe quel type de servlet) et je passe par des url du type *.do pour effectuer des actions qui iront, au final, m'afficher des pages jsp. Néanmoins je me suis rendu compte que si un utilisateur tapait les url des pages jsp il pouvait y accéder directement, sans passer par la servlet Struts.
    Mon but au final serait que seules des url du type *.do soient accessibles pour l'utilisateur et qu'il n'ait pas accès aux fichier jsp (ou tout autre ressource, comme des images) qui se trouvent dans l'arborescence de mon application.

    J'utilise jBoss et j'ai vu que mes applications possédaient toujours deux servlets par défaut : une servlet appelée jsp et une autre appelée default. La servlet jsp j'imagine bien ce qu'elle fait (et c'est sans doute celle-là qui m'embête le plus) mais je me demande bien à quoi sert la servlet "default".

    Je pense que la meilleure manière de n'autoriser l'accès qu'à mes actions Struts *.do est soit de créer un filtre soit de désactiver la servlet par défaut "jsp".

    • Pour la première solution est-ce qu'on peut spécifier comme url-pattern des filtres une véritable expression régulière du genre "Toutes les url SAUF *.do". Ce qui me permettrait d'avoir un filtre qui renvoie sur une page d'erreur.
    • Pour la deuxième solution quelqu'un sait-il comment procéder pour désactiver les servlets par défaut ? Est-ce que c'est configurable dans le fichier web.xml ?


    Mais peut-être existe-t-il d'autres solutions...

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Tu peux aussi placer tes jsps et tout ce que tu veux protéger dans ton répertoire WEB-INF.

  3. #3
    Invité
    Invité(e)
    Par défaut
    C'est vrai, j'y avais pensé aussi. Mais je sais pas si c'est très propre. Au pire si je trouve pas d'autres solutions je ferai comme ça. Mais ça va m'obliger à passer des heures à modifier mes fichiers de conf pour mettre à jour les url

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Pour moi, c'est le plus propre, le repertoire WEB-INF sert en partie à ça, et au moins, tu n'as rien à développer de plus.
    Avec un bon éditeur, un remplacement de chaine ne devrait pas de prendre beaucoup de temps.

    Le filtre me semble également une solution assez simple à mettre en place.
    Après à toi de voir ce que tu préfères.

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 237
    Par défaut
    à une époque, j'avais placé les fichiers .jsp dans le répertoire web-inf, mais si on utilise displaytag ça ne fonctionne plus (en tout cas, je n'ai pas trouvé de solution). displaytag rappelle la jsp pour la pagination par exemple et ça plante si ta jsp est dans le répertoire web-inf.
    quand on place les jsp en dehors de ce répertoire, plus de souci...
    donc, je crois que l'option du filtre est la meilleur solution

    voilà...

  6. #6
    Invité
    Invité(e)
    Par défaut
    Je viens aussi de réaliser qu'on pouvait pas interdire l'accès à toutes les ressources. Les images par exemple doivent rester en libre accès sinon la page ne pourra pas les afficher. Donc en fait ce sont surtout les pages jsp qui doivent être protégées.

    Les "cacher" dans le répertoire WEB-INF est sans doute une bonne solution, mais je vais attendre pour voir l'avis d'un maximum de personnes.

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Mars 2007
    Messages
    392
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 392
    Par défaut
    pour ma part, mon architecture d'une application web a cette arborescence :
    /web
    | css : contient le css
    | js : contient les javascripts
    | media : contient les images
    | html : contient les pages statiques
    /WEB-INF
    | classes : contient les .class
    | lib : contient les librairies de l'application
    | pages : contient les jsp de l'application

    ainsi, les jsp ne sont jamais appelables par l'utilisateur final... il est obligé d'appeler les actions... ce qui permet de faire des contrôles plus facilement (authentification, habilitation, ...)

Discussions similaires

  1. Interdire l'accès aux fichiers dans certains cas
    Par ant0inep dans le forum Langage
    Réponses: 1
    Dernier message: 04/10/2010, 16h04
  2. [URL rewriting] Interdire l'accès aux .php
    Par cadbury dans le forum Apache
    Réponses: 4
    Dernier message: 23/10/2009, 21h04
  3. Interdire l'acces aux tables etc..
    Par lagratteCchouette dans le forum Sécurité
    Réponses: 4
    Dernier message: 17/07/2006, 21h29
  4. Réponses: 1
    Dernier message: 05/09/2005, 19h18
  5. Réponses: 38
    Dernier message: 16/02/2005, 02h03

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