2012-08-23 20 views
5

Tengo una aplicación web que contiene cientos de archivos HTML, JavaScript y de imagen. Estos archivos se encuentran en el directorio raíz:Mover recursos en WEB-INF

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

Estas carpetas contienen algunas subcarpetas.

Por una razón de seguridad, necesito mover todos estos recursos en la carpeta WEB-INF para que no sean accesibles directamente.

Actualmente los archivos JSP y servlet ya están en la carpeta WEB-INF.

¿Cuál es el método más fácil para mover todas las carpetas HTML/JavaScript/images bajo WEB-INF sin romper todos los enlaces/reenvío a recursos en estas carpetas y asegúrese de que estos recursos no sean accesibles directamente?

Estoy utilizando servidores WebSphere y WebLogic.

+1

¿Puede dar un ejemplo simple para ayudar a que quede más claro? ¿Quiere decir que quiere evitar que los usuarios accedan a '/examplepage.jsp' moviéndolo a WEB-INF? ¿Cómo acceden actualmente los usuarios a las páginas? ¿Usas un marco como Struts, etc.? – GrahamMc

Respuesta

0

Puede ir con una herramienta muy simple como Notepad ++ y usar la función findAndReplace. Eclipse también puede hacer esto, pero resulta difícil encontrar efectivamente cada referencia.

Tenga en cuenta que hay otras maneras de evitar que los usuarios accedan a sus imágenes. Es probable que sea más fácil dejar las cosas donde están y dar instrucciones al WebSphere dejar de servir estas imágenes de la carpeta de imágenes

+1

estoy descorazonado con la sugerencia – Kowser

+0

¿por qué es que @Kowser? – ricardoespsanto

+0

'con una herramienta muy simple como Notepad ++ y use la función findAndReplace' :-(esta es una muy mala idea, creo que – Kowser

9

¿Cuál es el método más fácil para mí para mover de forma segura todos/js/imágenes html carpetas bajo la WEB-INF sin romper todos los enlaces/reenvío a recursos en estas carpetas y asegúrese de que estos recursos no sean accesibles directamente?

Estás cometiendo un error thiniking aquí. Los recursos HTML/JS/image (y CSS) necesitan para ser accesibles directamente de todos modos. Para los JSP, la historia es diferente, algunos de ellos, si no todos, deben ser preprocesados ​​por un servlet (por ejemplo, para recuperar una lista de DB para mostrarla en una tabla). Si se accediera directamente a esos JSP, ese paso de servlet se saltaría por completo, lo cual no es lo que usted desea (los JSP terminan "vacíos", sin ningún dato del DB). Es por eso que deben estar ocultos en /WEB-INF para evitar el acceso directo sin pasar primero por un servlet de preprocesamiento. Además, en el caso de frameworks MVC basados ​​en servlet, de esta manera se omitiría todo el proceso de framework MVC (recolección de parámetros de solicitud, conversión/validación, actualización de valores de modelo, invocación de acciones, etc.).

Su requisito funcional concreto no es exactamente claro (toda la pregunta no tiene sentido, la respuesta es simplemente "no hacer eso"), pero si en realidad desea restringir el acceso a recursos estáticos que no necesita ser preprocesado por un servlet para ciertos usuarios solamente, entonces debe implementar un sistema de autenticación/inicio de sesión. Puede utilizar la autenticación administrada por contenedor o homegrow a Filter para esto.