miércoles, 21 de agosto de 2013

Ejemplo real a una página de gobierno de una inyección SQL (video)

Navegando por la red me encontré un video que demuestra que verificar cada "input" por parte del usuario es de vital importancia ya que se pueden incurrir en errores como el del video mostrado a continuación, donde el atacante logra accesar a la página ¡y como administrador!

Primeramente intenta accesar introduciendo:

yo' or 1=1;--

con lo que no tiene éxito, posteriormente introduce:
' or 'i'='i

con lo que logra accesar al sitio sin tener la autorización de los administradores.

Para una pequeña introducción al tema pueden consultar el post:

Inyeccion SQL - Ejemplo de inyeccion SQL (SQL injection) en C# y MySQL

 

 

martes, 1 de noviembre de 2011

SecureString - Almacenar contraseñas en memoria

En mi caso y espero que no sea su caso (por lo de la contraseña), al desarrollar las aplicaciones que se conectarán a una base de datos me gusta tener una clase que me administre la conexión a la Base de Datos y todos los campos que ésta necesita (incluyendo la contraseña de acceso).  Para evitar almacenar la contraseña en memoria en un tipo string podemos utilizar SecureString [System.Security.SecureString].

Uno de los puntos importantes es que SecureString implementa CriticalFinalizerObject, lo cual significa que SecureString se considera una Región de ejecución restringida (Constrained Ejecution Region - CER) lo que significa que las excepciones de tipo out-of-band estan prohibidas en regiones de tipo CER por lo que evitamos que cierta parte del código no se ejecute (con el fin de liberar de memoria el objeto SecureString llamando la función Dispose()). Se debe tener en cuenta que SecureString se mantiene en una región no administrada de la memoria, por lo que es nuestra responsabilidad liberar ese recurso.

Nota: Considera que no tiene caso almacenar una contraseña o cualquier dato sensible en un  string y pasarlo como parámetro para agregarlo a un objeto SecureString si no eliminamos de memoria ese string inmediatamente despues de utilizarlo.

Utilizar SecureString.

una de las formas en que podemos utilizar SecureString en combinación con las propiedades (get & set):

En mi caso marqué la propiedad get como privada para accesar únicamente desde la misma clase.
 Es importante volver a decir que no debemos almacenar permanentemente una copia de la contraseña en memoria.

Via: http://lambdabox.blogspot.com/2011/10/securestring-almacenar-contrasenas-en.html


sábado, 15 de mayo de 2010

Vigilar nuestro sistema de archivos con FileSystemWatcher

Hay una caracteristica del .net framework un tanto desconocida, la clase FileSystemWatcher que monitorea el sistema de archivos y dispara un evento cada vez que se realiza algun cambio.

Las aplicaciones de esta clase son muchísimas, todo depende del potencial que vayamos descubriendo.



jueves, 4 de marzo de 2010

Identificación facial con .net - Griaule ICAO Face SDK

Antes de cualquier cosa debemos aclarar que el ejemplo que utilizaremos en esta entrada únicamente identifica el rostro en una imagen y no es capaz de determinar si ese rostro pertenece a cierta persona (como si hiciera con huella digital), sin embargo puede ser de mucha ayuda para las aplicaciones.

Aclarado el punto anterior, es tiempo de comenzar. Lo primero que necesitaremos es la libreria ICAO Face SDK que podemos descargar desde el sitio web de Griaule



Ya que hemos instalado la libreria, debemos crear un nuevo proyecto en Visual Studio. En nuestro caso vamos a crear un proyecto en C#




viernes, 15 de enero de 2010

El primer evento de la comunidad dotnet guerrero

En dias pasados (17 de diciembre) se llevo a cabo el evento de lanzamiento de la comunidad dotnet guerrero y aprovechamos e hicimos tambien el lanzamiento de "Windows 7 en tu ciudad", en dicho evento se dieron conferencias relacionadas a Windows 7 y al desarrollo:
-Presentacion de Windows 7
-Windows 7 en las empresas
-Desarrollando para Windows 7
-Trucos para Windows 7
-ASP.NET
-ADO.NET

al finalizar las conferencias se rifaron libros de "Ms Press" y algunos DVDs, les dejo fotos del evento.



lunes, 7 de diciembre de 2009

Almacenamiento Aislado (isolated storage)

El almacenamiento aislado (isolated storage en ingles) es un sistema de archivos separado del sistema de archivos estandar en el cual podemos leer o escribir archivos en nuestras aplicaciones .net. Ademas, este tipo de almacenamiento es privado y aislado por usuario, dominio y ensamblado, lo que nos ofrece un nivel extra de seguridad que no es ofrecido por el Sistema Operativo.

lunes, 16 de noviembre de 2009

Curso online de programacion: C# desde cero

Asi es, a todos los que esten interesados en tomar algun curso online sobre C#, esta es la oportunidad, los compañeros de la comunidad dotnetguerrero ofreceran a partir del dia 17 de noviembre el curso online que se dara en 14 sesiones (2 sesiones a la semana).

Si quieren inscribirse, visiten la pagina de la comunidad: http://dotnetguerrero.net

lunes, 31 de agosto de 2009

how do i? - Videos para windows azure. Subete a la nube

AL igual que un post anterior les ofreciamos la dirección de la sección How do I de C#, en esta entrada les mostramos los videos de MSDN de windows Azure: "How Do I? Videos for Azure Services Platform".

En los titulos de los videos encontramos:

How Do I: Get Started Developing with Windows Azure?
How Do I: Store Blobs in Windows Azure Storage?
How Do I: Store Data in Windows Azure Tables?
How Do I: Get Started with .NET Services?

Entre otros.

Pero si lo que quieren es un ejemplo de cómo subir sus archivos a la nube con la plataforma gratuita de Microsoft, pueden consultarlo aqui.

Subete a la nube.

domingo, 30 de agosto de 2009

Nace una Comunidad: dotnet Guerrero

Asi es, en estos dias tengo el placer de informarles el nacimiento de una nueva comunidad: La comunidad dotnet Guerrero, en la cual podrán participar todos aquellos interesados en compartir el conocimiento.

Como su nombre lo dice, la comunidad es del estado de Guerrero y tiene su cuna en la ciudad capital: Chilpancingo de los Bravo; sin embargo, todos aquellos que deseen participar (sin importarn donde se encuentren) lo podrán hacer proponiendo temas, escribiendo artículos, tomando cursos, asistiendo a webcasts o en cualquier otra actividad de interés colectivo.

Esperamos tener el apoyo de todos ustedes.

-dotnet Guerrero.