JASoft.org

Seguridad: Identidades de grupos de aplicaciones en IIS 7.5 y IIS 8.0

Seguridad: Identidades de grupos de aplicaciones en IIS 7.5 y IIS 8.0
Internet Information Server ofrece desde hace muchos años un concepto llamado Grupo de Aplicaciones, que incluso más comúnmente se suele denominar con su nombre en inglés: "Application Pool". Un Application Pool es una forma de aislar unas aplicaciones web de otras, confinándolas en su propio proceso y en sus propios límites de seguridad. Son tremendamente útiles ya que nos ayudan con la estabilidad general del sistema, la mejora de la seguridad y la salud de las propias aplicaciones entre otras muchas cosas. Un mismo grupo de aplicaciones puede contener a varias aplicaciones a la vez, pero lo más habitual es que haya una relación uno a uno entre aplicaciones y grupos de aplicaciones, es decir, uno por cada aplicación. De este modo para cada grupo de aplicaciones podemos establecer multitud de parámetros, por ejemplo (hay todavía más): La identidad bajo la que se ejecuta el proceso de nuest... [Más]

La propiedad EnableViewStateMac ya no funciona en ASP.NET Web Forms 4.5.2

La propiedad EnableViewStateMac ya no funciona en ASP.NET Web Forms 4.5.2
Hace unas semanas Microsoft anunció la revisión 4.5.2 de .NET, que actualiza un poco la última versión de la plataforma .NET (la 4.5) con algunos ajustes y correcciones. Si nos atenemos a lo que anunciaron en el blog oficial, e incluso en la lista de cambios del lanzamiento, no hay nada que llame la atención sobre un pequeño detalle que sin embargo es muy importante: han deshabilitado la posibilidad de desactivar el MAC del ViewState en ASP.NET Web Forms. Y esto ¿qué significa? Para verlo, primero demos un repaso rápido a qué es el MAC y para qué sirve. Luego veremos qué implicaciones tiene el hecho de no poder desactivarlo. Funcionamiento del ViewState y autenticación El ViewState, como todos deberíamos saber, es una parte fundamental del funcionamiento de Web Forms. Almacena el estado de los diferentes controles de una página entre postbacks. En Web Forms cada evento que se produce que se gestiona en el servidor implica un envío de la página de nuevo al servidor. A estos reenv... [Más]

Acceder a la herramienta de configuración de ASP.NET en Visual Studio 2013

Acceder a la herramienta de configuración de ASP.NET en Visual Studio 2013
Hasta la versión 2012 de Visual Studio disponíamos de un acceso directo muy cómodo desde el propio entorno que nos permitía lanzar la herramienta de configuración de ASP.NET: De esta manera abríamos la utilidad que nos permitía configurar la seguridad de la aplicación: usuarios, roles, proveedores para éstos, etc... En Visual Studio 2013 y .NET 4.5 se ha dado preferencia a las bibliotecas de ASP.NET Identityen detrimento del clásico sistema de Membership. Por ello, aparte de basar las nuevas plantillas de proyecto en estas nuevas bibliotecas de autenticación y autorización, se ha retirado el acceso directo a la herramienta anterior (y no se proporciona tampoco una herramienta análoga para lo nuevo, debiendo recurrir a la implementación por defecto incluida en las plantillas). Sin embargo, si necesitas (o prefieres) utilizar el antiguo sistema de autenticación y te interesa acceder a la herramienta, todavía puedes hacerlo, aunque no te resultará tan cómodo. El acceso se basa en el... [Más]

Suplantación de usuarios en IIS y ASP.NET: un resumen detallado

Suplantación de usuarios en IIS y ASP.NET: un resumen detallado
A la hora de desplegar en un entorno real de producción, para ponerlas a disposición de todo el mundo, las aplicaciones web creadas con ASP.NET se albergan en un servidor web. Por regla general éste será Internet Information Server (IIS), incluido en las versiones de servidor de Windows. IIS no es más que otra aplicación que se ejecuta sobre el sistema operativo, por lo que es Windows el que se ocupa del nivel más bajo de la cadena de la seguridad. Por ello conviene tener claro que la última palabra a la hora de conceder acceso a un recurso físico del sistema la tiene el propio sistema operativo, no IIS ni ASP.NET. Contextos de seguridad En Windows, cada proceso se ejecuta dentro de su propio contexto de seguridad. Cuando un proceso accede, por ejemplo al sistema de archivos NTFS, los permisos se le otorgan en función del contexto en el que se ejecute. Normalmente si un proceso lanza otro subproceso éste ... [Más]

Propagación y herencia de permisos: la clase FileSystemAccessRule

Propagación y herencia de permisos: la clase FileSystemAccessRule
La información que ofrece en ocasiones MSDN sobre la plataforma .NET se puede decir, eufemísticamente, que "no es todo lo buena que debiera ser". Un buen ejemplo de ello es la documentación de la clase FileSystemAccessRule y más en concreto lo que se refiere a los indicadores sobre propagación y herencia de permisos en el acceso al sistema de archivos. Consideremos este ejemplo. Necesitas controlar desde tu aplicación el acceso a un carpeta llamada "docs" de forma que te asegures de que el usuario "DOMINIO\Usuario" tendrá acceso de lectura a la carpeta y todas sus subcarpetas (y las hijas de éstas), pero sin embargo no tendrá acceso a ninguno de los archivos contenidos en éstas. Dejemos de lado la utilidad exacta de esto. Lo que quiero es mostrar lo retorcidas que han puesto las opciones correspondientes en la plataforma .NET :-S El código en C# que necesitaríamos incluir es este: 1: DirectorySecurity dirSec = Directory.GetAccessControl(@&quo... [Más]

Proveedores universales de ASP.NET: Membership y Roles fuera de SQL Server

Proveedores universales de ASP.NET: Membership y Roles fuera de SQL Server
Como todo programador de ASP.NET sabe, la mayor parte de las API de esta plataforma de desarrollo web están basadas en el modelo de proveedores. Para explicarlo de manera rápida, básicamente esto significa que entre la funcionalidad que el programador utiliza y el almacenamiento relacionado con ésta, existe un elemento intermedio llamado "proveedor" que desacopla ambas partes. De esta manera, si queremos utilizar otro tipo de almacenamiento basta con cambiar el proveedor en la configuración y listo. no es necesario tocar el código en absoluto, por lo que resulta muy cómodo y útil. El siguiente esquema (sacado de MSDN) ilustra la arquitectura de este modelo: Como vemos muchos servicios como los de seguridad (Membership y Roles), la personalización (Profile) u otros como el almacenamiento de la sesión o los WebParts, están basados en este modelo, representados por las cajas de la parte superior. Así, la información de los usuarios, los roles, los perfiles, las sesiones, etc... [Más]

Evitar que se publiquen las descripciones de nuestros servicios Web

Evitar que se publiquen las descripciones de nuestros servicios Web
Si disponemos de un servicio Web en nuestro servidor que está destinado a ser utilizado por nuestras aplicaciones pero no queremos facilitar que otros programadores le puedan sacar partido: ¿para qué queremos dejar publicado su archivo de descripción WSDL? El WSDL (Web Services Description Language) describe cómo es un servicio Web: qué tipos usa, qué métodos expone, etc… y es lo que usan Visual Studio y otras herramientas para crear un proxy que nos permita usar un determinado servicio. Se puede visualizar para cualquier servicio de .NET añadiendo ?wsdl al final de su URL, por ejemplo: http://www.miservidor.com/Servicios/miServicio.asmx?wsdl Cuando añadimos una nueva referencia Web a nuestro proyecto, en el diálogo que aparece podemos inspeccionar el servicio gracias a su descripción WSDL: Sin ese WSDL no podríamos inspeccionarlo ni tampoco añadir la clase proxy correspondiente. Un proxy es una serie de clases .NET que actúan de intermediarias entre nuestro código y el servi... [Más]

Cómo suplantar usuarios de tu aplicación para soporte

Cómo suplantar usuarios de tu aplicación para soporte
Esta es una cuestión bastante habitual y es que es muy útil, siendo administrador de una aplicación, poder entrar como cualquier otro usuario para ver lo mismo que éste ve y poder hacer cosas en su nombre. Sobre todo a la hora de dar soporte técnico, poder atender mejor a los usuarios, ayudarles o detectar posibles problemas en sus cuentas. La idea es la de poder entrar haciéndonos pasar por otros usuarios, como si fuésemos ellos, pero sin conocer sus credenciales. El otro día un alumno de mi curso de Desarrollo Web con ASP.NET me preguntó  precisamente esto, por lo que me he decidido a grabar un vídeo práctico explicando como hacerlo. Como verás es muy fácil, pero interesante. Dejo el vídeo a continuación y te recomiendo que, antes, te leas este post que escribí hace tiempo sobre el funcionamiento de las cookies de autenticación. ¡Espero que te resulte &... [Más]

Baquia.com hackeado (o eso parece)

Baquia.com hackeado (o eso parece)
Entre los Web Clips para mostrar en la barra superior de GMail, tengo añadidas las noticias de Baquia.com. Me parece una publicación on-line muy interesante y me acabé de aficionar definitivamente a ellos cuando tuve oportunidad de conocerlos en persona hace unos meses, que estuve en sus oficinas para entrevistarme para su televisión. Mparecieron muy profesionales y las noticias y artículos resultan casi siempre de interés. Hace un rato, leyendo mi cuenta de GMail, me he fijado en una cosa que por poco se me pasa inadvertida y es que una de las noticias de la barra de Web Clips era de Baquia pero se veía "rara": Bufff, parece un hacking clarísimo. Si pulsas en el enlace te lleva a una página que no existe ya: O sea, que los amigos de Baquia han andado rápidos por fortuna. Pero por rápido que seas, Google estos días parece que lo es mucho más: http://www.google.es/search?hl=es&source=hp&q=ozzmadark+site%3Abaquia.com si bien parece que, en e... [Más]

Este soy yo y este es mi blog técnico, dedicado al software y a la programación.

¡Sígueme en Twitter!

Mis otros blogs

- JM Alarcón @ campusMVP.es
Contenido técnico en español orientado a desarrolladores
- JMAlarcon.es
Blog personal no técnico: sociedad, innovación, empresa...

Krasis

- campusMVP.es:
Los mejores cursos online de programación en español

- SELF LMS:
La plataforma de elearning más potente del mercado.

Histórico