2015-04-06 1 views
4

est-ilvalide, la norme des meilleures pratiques et placerpratique standard de placer JSP

  • pages accessibles au public soient en dehors du dossier WEB-INF tels que

    index.jsp, home.jsp, store.jsp, login.jsp, registration.jsp... et

  • pages sécurisées comme

    admin.jsp, reports.jsp, manageusers.jsp, manageproducts.jsp...

    être à l'intérieur du en créant servlets contrôleur WEB-INF dossier pour les sécurité raisons (ne peut pas accéder directement via l'URL) pour les consulter

  • et comprend comme

    navigation.jsp, header.jsp, footer.jsp, sitemap.jsp...

    être dans répertoire spécialement protégées pour ne pas être accéder directement à partir de url ??

+0

et plusieurs autres suggestions à la pratique ... –

Répondre

2

Cela ressemble un peu à quelqu'un qui a un débat et veut un départage? :)

Cela pourrait être découpé de mille façons ... mais je ne décrirais pas personnellement le but de les placer dans WEB-INF pour des raisons de sécurité, c'est purement parce que vous ne voulez pas que l'utilisateur accède directement à ces ressources , pour une variété de raisons.

Il est possible que vous pourriez utiliser WEB-INF dans le cadre de votre infrastructure de sécurité, mais je ne dirais pas que c'est une meilleure pratique standard. La sécurité devrait commencer au niveau de la demande, et cependant vous livrez ces ressources à l'utilisateur - WEB-INF n'est pas "la" solution, et elle n'a pas "besoin" d'être.

Mise en place des ressources accessibles à l'extérieur du WEB-INF ... Oui, bien sûr, pourquoi pas? Différents frameworks peuvent vous obliger à placer toutes les ressources dans WEB-INF et à les rendre accessibles via divers mécanismes controller/filter/serlvet, mais cela ne serait qu'une propriété du framework et ne devrait pas vous faire croire que placer des ressources en dehors de WEB-INF est un non-non.

0
  1. Lorsque vous placez le le défaut Servlet de votre conteneur Servlet pages JSP « en dehors » du WEB-INF, (comme Tomcat) inspectera l'URL, appelez le JSPs et renvoyer la réponse au navigateur.Lorsque vous placez alors dans WEB-INF, alors vous écrivez votre propre Servlet (Contrôleur) qui inspecte l'URL et avec une sorte de logique, redirige/redirige vers une JSP.

Une bonne couche de sécurité (probablement basée sur un filtre) mettra en œuvre la sécurité qui prendra en charge les deux cas ci-dessus. Car, voulez-vous vraiment que votre servlet par défaut soit "invoquée" par des gens non autorisés? D'après ce que je sais, la meilleure pratique est de créer un dossier appelé "public" dans votre dossier "WebContent" et n'y mettre que le contenu non sécurisé. Votre filtre doit inspecter chaque demande d'URL à votre serveur /* et agir en conséquence.

De plus, une autre bonne pratique ne laisse jamais une URL se terminer par ".jsp". Même quelque chose comme « bienvenue » ou « login » ou « déconnexion » devrait être géré par votre propre SecurityFilter + DisplayController

Exemple:

WebContent 

--public 
----css 
------main.css 
----images 
------logo.png 
----js 
------common.js 
--private 
----js 
------ui_handler.js 
--WEB-INF 
----classes 
----jsp