EnlacesJava en españolJava en inglésOtras áreas |
Desarrollo de aplicaciones Web seguras con JavaÍndice:
1. Desarrollo de aplicaciones Web seguras Desarrollo de aplicaciones Web seguras con JavaMuchas empresas ya están aprovechando los sistemas Internet para exponer sus operaciones a sus clientes. Actualmente, millones de personas utilizan diferentes tipos de sistemas de información basados en la tecnología Web por la facilidad de acceso que ésta ofrece. La mayoría de empresas, como las bancarias y compañías de comercialización, tienen ahora presencia online, por ejemplo, las agencias bancarias permiten realizar transacciones monetarias, pago de servicios y otras operaciones más. Sin embargo, estas aplicaciones que son de comercio electrónico no podrían darse de ninguna manera sin tener en cuenta la seguridad. En este artículo veremos el mecanismo de seguridad robusto que nos ofrece la plataforma Java. Tipos de ataquesTodas las empresas que expongan sus servicios a Internet tendrán que proteger muy cuidadosamente su información y recursos. Desde luego que existen sistemas más críticos que otros, digamos, los bancos tendrán que prestar más atención en estos temas de la seguridad porque la información que maneja es monetaria y no faltará más de una persona hábil en informática que quiera ganar dinero fácil. Pero en general, todas las aplicaciones Web deben estar resguardadas y aseguradas ante cualquier tipo de ataque. Ya que las aplicaciones Web son globalmente públicas pueden ser atacadas libremente. Una aplicación Web puede ser atacada por diferentes motivos y personas. Digamos, un hacker puede atacar por diversión, o quizás un empleado despedido quiera tomar venganza, o un ladrón profesional quiera atacar con algún fin específico. Generalmente, podemos hablar de 3 tipos de ataques:
Otros tipos de ataques van referidos a:
La especificación de los Servlets proporciona métodos para implementar la seguridad en las aplicaciones Web. Mecanismos de autenticaciónAhora que ya vimos algo de las seguridad en las aplicaciones Web, veremos cómo los Servlets implementan la autenticación. Existen 4 mecanismos:
1. HTTP Basic Los 4 mecanismos están basados en el usuario y contraseña, y el servidor Web mantiene la lista de usuarios y contraseñas. HTTP Basic HTTP Digest HTTPS Client Autenticación HTTP basada en formularios Implementación de los mecanismos de seguridad en el TomcatEl servidor Tomcat define un modelo de seguridad basado en roles. Bajo este modelo un usuario siempre estará asignado al menos a un rol y los permisos se le otorgarán al rol en lugar de al usuario. Esto da flexibilidad al modelo porque podemos tener muchos usuarios desempeñando el mismo rol, como también es posible que un usuario desempeñe varios roles, teniendo como permisos la suma de todos los roles. Los dominios de seguridadUn dominio de seguridad es un mecanismo del Tomcat que se usa para proteger los recursos de la aplicación Web (JSP’s, Servlet’s, directorios, gráficos, páginas HTML, etc.). Esto nos da la capacidad de proteger un recurso con una restricción de seguridad predeterminada y luego definir qué roles pueden acceder al recurso protegido. La interfase del Tomcat que hace posible esta funcionalidad es el org.apache.catalina.Realm. Esta proporciona un mecanismo a través del cual la lista de usuarios, contraseñas y roles pueden ser integrados al Tomcat. El Tomcat implementa 2 tipos de dominios de seguridad:
En ambos casos, la configuración del mecanismo de seguridad se realiza en el web.xml de la aplicación Web. La diferencia está en el origen de dónde se obtienen los usuarios, contraseñas y roles. En el primer caso, los usuarios autorizados para ingresar a nuestra aplicación se guardarán en el archivo DIRECTORIO_TOMCAT/conf/tomcat-users.xml. Y en el segundo caso, serán obtenidos de una base de datos. Dominios basados en el archivo tomcat-users.xmlPor defecto, éste archivo lo tendremos así: En el archivo tenemos a 3 usuarios: “tomcat”, “role1” y “both” que tienen como contraseña “tomcat”. Además tenemos un tercer atributo que es roles. El valor que tenga este atributo es muy importante porque los permisos están basados en ROLES y no en los usuarios. Y esto da bastante flexibilidad en la administración de la seguridad. Para dar un ejemplo, crearemos 2 usuarios más: El usuario Juan es programador, y el usuario David es programador y además analista. Y para que funcione todo esto deberemos hacer algo más en el Tomcat. Abrir el archivo DIRECTORIO_TOMCAT/conf/server.xml y descomentar la siguiente línea: Al descomentar esa línea estamos habilitando el dominio basado en el archivo tomcat-users.xml como implementación por defecto para todo el contenedor. Si no encontramos esta línea deberemos agregarla directamente bajo el elemento . Configuración en el web.xmlAgregaremos un par de líneas en el descriptor de despliegue de nuestra aplicación Web, se trata del elemento
Veamos los sub-elementos:
Por ejemplo, una simple autenticación BASIC:
En cambio, si utilizamos el mecanismo de autenticación FORM, entonces necesitamos escribir 2 páginas HTML: la primera de login (donde el usuario ingresa su usuario y contraseña) y la segunda de error si el login falla. Sería algo así:
Y el login.html podría ser así:
Y el login_error.html:
Protección de los recursos en el TomcatAún no hemos terminado, necesitamos configurar qué recursos vamos a proteger y cuáles serán los roles permitidos. Hasta este momento, todos los recursos de la aplicación Web son accesibles para todo el mundo. Para restringir el acceso a los recursos tenemos que identificar lo siguiente:
Pues vamos a configurar estas 3 cosas en el descriptor de despliegue de la aplicación Web usando el elemento
Este es el fragmento del archivo web.xml que nos interesa para entender cómo el Tomcat protege sus recursos. Veremos uno a uno los elementos del :
|
© 2006 - Todos los derechos reservados Ciberaula -c/ Villalobos, 135 - 28018 Madrid - España - Tel. (34) 91 3035800
Aviso legal
Lo más buscado y visitado en Ciberaula
Masters:
Programación Web |
Diseño Web |
Diseño Gráfico |
Java |
Flash MX |
PHP |
3D Studio Max
Cursos:
GNU/Linux |
OpenOffice Impress |
OpenOffice Writer |
PHP 5 |
HTML |
J2EE |
J2SE |
Dreamweaver |
Flash MX |
ActionScript MX |
Photoshop Diseño Web |
Photoshop Diseño Gráfico |
Adobe Premiere |
Freehand MX |
3d Studio Max |
3d Studio Iluminación |
3d Studio Modelado |
Word |
Excel |
Access
Secciones:
Formación a Distancia |
Formación a Empresas |
Servicios a Empresas |
Cursos a Distancia |
Cursos On-Line |
E-learning |
Ofimática