2012-08-23 10 views
5

Possiedo un'applicazione Web che contiene centinaia di file HTML, JavaScript e di immagini. Questi file si trovano nella directory root:Spostamento delle risorse in WEB-INF

my_root-- 
    -- html 
    -- js 
    -- images 

Queste cartelle contengono alcune sottocartelle.

Da un motivo di sicurezza ho bisogno di spostare tutte queste risorse nella cartella WEB-INF in modo che non siano direttamente accessibili.

Attualmente i file JSP e servlet sono già nella cartella WEB-INF.

Qual è il metodo più semplice per me di andare in modo sicuro tutti i HTML/JavaScript/images cartelle sotto la WEB-INF senza rompere tutti i link/inoltro alle risorse in queste cartelle e assicurarsi che queste risorse non sono direttamente accessibili?

Sto utilizzando i server WebSphere e WebLogic.

+1

Puoi fare un semplice esempio per rendere più chiaro - vuoi dire che vuoi impedire agli utenti di accedere a "/examplepage.jsp" spostandolo su WEB-INF? In che modo gli utenti accedono alle pagine al momento - stai utilizzando un framework come Struts, ecc.? – GrahamMc

risposta

0

È possibile utilizzare uno strumento molto semplice come notepad ++ e utilizzare la funzione findAndReplace. Eclipse può anche farlo, ma diventa difficile trovare efficacemente ogni riferimento.

Nota che esistono altri modi per impedire agli utenti di accedere alle tue immagini. È probabilmente più facile da lasciare solo le cose dove sono e istruire il WebSphere per fermare servire queste immagini dalla cartella di immagini

+1

sono scoraggiato con il suggerimento – Kowser

+0

perché è questo @ Kowser? – ricardoespsanto

+0

'con uno strumento molto semplice come notepad ++ e usa la funzione findAndReplace' :-(questa è una pessima idea, penso – Kowser

9

Qual è il metodo più semplice per me di andare in modo sicuro tutti html/js/immagini cartelle sotto il WEB-INF senza rompere tutti i link/inoltro alle risorse in queste cartelle e assicurarsi che queste risorse non siano direttamente accessibili?

Qui stai commettendo un errore pessimo. Le risorse HTML/JS/image (e CSS) devono essere comunque accessibili direttamente da. Per i JSP la storia è diversa, alcuni di essi, se non tutti, devono essere preelaborati da un servlet (ad esempio per recuperare una lista dal DB per la visualizzazione in una tabella). Se quei JSP fossero stati acceduti direttamente, allora quel passo servlet sarebbe saltato del tutto, il che non è assolutamente quello che vuoi (i JSP finiscono "vuoti", senza alcun dato dal DB). Ecco perché dovrebbero essere nascosti in /WEB-INF per impedire l'accesso diretto senza prima passare attraverso un servlet di pre-elaborazione. Inoltre, in caso di framework MVC basati su servlet, in questo modo l'intero processo framework MVC (raccolta dei parametri di richiesta, conversione/convalida, aggiornamento dei valori del modello, invocazione di azioni, ecc.) Verrà saltato.

vostro requisito funzionale di cemento non è esattamente chiaro (l'intera questione fa a proprio alcun senso, la risposta è semplicemente "non farlo"), ma se si realtà desidera limitare l'accesso alle risorse statiche che non è necessario che sia preelaborato da un servlet per alcuni utenti, quindi è necessario implementare un sistema di autenticazione/login. Per questo puoi utilizzare l'autenticazione gestita dal container o l'homegrow a Filter.

Problemi correlati