viernes, 16 de agosto de 2013

Ingeniería Social y tu información en las redes sociales

Estimados amigos aquí para traerles un nuevo aporte.

Hoy en día personas sin escrúpulos llaman a diversos teléfonos fijos o móviles haciéndose pasar por alguien conocido (familiar, amigo, etc) 

Para evitar este tipo de suplantaciones aquí les dejo unos pasos interesantes que deben tener en cuenta:

Lo que vamos a ver a continuación en algo de lo que llamamos Ingeniería Social

1) Cuando llame el supuesto familiar en problemas o la persona que ha secuestrado a tu familiar, trata de estar calmado, y hazles preguntas de rigor que sólo podría saber tu familiar. No caigas en el viejo truco que te preguntan y tu contestas dándole más información. Aquí lo que haces es un feedback de datos y los nutres con información que luego utilizarán en tu contra.

Lo que se debe tener en cuenta con las redes sociales

2) Tus contactos de facebook o twiter que sean tus familiares o conocidos (amigos, etc), no agregues contactos por agregar y menos si no los conoces. 

3) Si alguien te invita a ser tu contacto y coloca un perfil agradable y sin embargo no lo conoces, no lo aceptes y así evitas que otros pueden ver tu información privada (perfil).

4) En los perfiles evita colocar tu información personal como: teléfonos moviles o fijos, emails, ciudad de procedencia, etc. Si lo colocas al menos intenta sólo sea visualizado por tu contactos y no sea información pública.

5) Las fotos que coloques, intenta que no puedan dar pie a que encuentren tu información privada. Un ejemplo de ellos es si tienes hijos, evita colocar los nombres de tus hijos y la de tus seres queridos, coloca datos de la fotos en general, como "Aquí con mi bella familia" 

Otro ejemplo de ello, es colocar fotos cuando estas disfrutando de tus vacaciones. Puede dar pie a que vayan a tu casa en ese momento.


Más ingeniería social

1) Evita dar tu información cuando te llaman, estas personas suelen hacerse pasar por encuestadores, inmediatamente cuelga el teléfono.

2) Si te llaman de madrugada por lo general y tú sabes que medio zombie puedes soltar información, apaga tu celular antes de dormir, muy importante.

3) Evita el spam, eliminalo.

Espero estos pequeños tips te puedan ayudar en algo.

Tu amigo Carlos Zacarías.

lunes, 24 de junio de 2013

PostgresSQL con C#

Amigos, esta vez les voy a dejar un aporte de una clase hecha en C# para conectarnos a una base de datos PostgreSQL, respetando el patrón de diseño Singleton. Antes de entrar a más detalles vamos a definir que es un patrón de diseño y sobre todo que es un patrón de diseño Singleton.

Patrón de diseño: Es una solución que se aplica a problemas comunes que suceden en el diseño de software y cuenta con características como: Probada, Genérica y Probada.

Brindan soluciones de como resolver problemas que han aparecido anteriormente y que responden a un cierto patrón.

Patrón de diseño Singleton: Garantiza la existencia de una única instancia para una clase y proporciona un punto de acceso global a dicha instancia.

La clase que implementa el patrón Singleton debe contener un método público y estático que crea una instancia del objeto siempre y cuando no exista ninguna creada. Además el constructor debe ser privado para no crear más instancias de la clase.

Ahora si vamos a entrar a explicar nuestra clase de CBD (siglas que significan Conexión a Base de Datos)

1) Vamos a usar las DLL Npgsql.dll y Mono.Security.dll
2) Tener instalado la última versión de PostgresSQL, en mi casi tengo instalado la versión 9.2.4
3) Visual Studio 2010
4) Explicando el código:

Primero: tenemos nuestras variables, las cuales son:

  • connection: cadena de conexión.
  • connect: es un objeto de conexión hacia la fuente de datos.
  • comando: es una nueva instancia de la clase NpgsqlCommand, la cual hace directamente la consulta a la base de datos.
  • instance: es la variable que contendrá la instancia de la clase CBD.

Segundo: tenemos nuestro constructor con el modificador privado para no poder crear instancias de la clase.


Tercero: debemos crear nuestro método estático, el cual es el único que crea instancias de la clase CBD.


Cuarto: también tenemos nuestro métodos que ejecutan transacciones y devuelven datos.
  • transaction: realiza una sola transacción por vez. Devuelve un valor booleano, true si fue realizado y false si no lo realizó.
  • multipleTransaction: realiza múltiples transacciones por vez. Devuelve un valor booleano, true si fue realizado todo correctamente, false si no lo realizó. Cabe comentar que maneja las sentencias begin, commit y rollback para manejar las múltiples transacciones.
  • muestraDatosDT: devuelve un DataTable con los datos de la consulta.
  • muestraDatosDS: devuelve un DataSet con los datos de la consulta.
También les dejo un ejemplo completo usando cada método. Lo único que necesitan hacer es crear una base de datos de nombre ejemplo y una tabla persona con los campos idpersona, nombre, apellidos, fecha.

Para descargar el ejemplo completo presionar el enlace aquí.

Espero les haya sido de utilidad, hasta la proxima, su amigo Carlos Zacarías.

domingo, 17 de marzo de 2013

JPA con MySQL

JPA (Java Persistence API): Es la API de persistencia de datos desarrollada para la plataforma Java EE.

Es un framework del lenguaje de programación Java que maneja datos relacionales en aplicaciones usando la Plataforma Java en sus ediciones Standard (Java SE) y Enterprise (Java EE).

El objetivo que persigue el diseño de esta API, es no perder las ventajas de la orientación a objetos al interactuar con una base de datos relacional, y permitir usar objetos regulares (conocidos como POJOs --> un POJO es una palabra utilizada por programadores Java para enfatizar el uso de clases simples y que no dependen de un framework en especial).

Referencia: http://es.wikipedia.org/wiki/Java_Persistence_API

JPA fue creado con java EE5 para resolver el problema de persistencia de datos. JPA es una abstracción arriba de JDBC que hace posible ser independiente de SQL. Todas las clases y anotaciones de esta API están en el paquete javax.persistence.

Los principales componetes de JPA son:
  • ORM, que es el mecanismo para mapear objetos a datos almacenados en una base de datos relacional.
  • Un administrador de entidades realiza operaciones sobre  una base de datos relacional, tal como crear leer, actualizar y eliminar.
  • El Java Persistence Query Languaje (JPQL), te permite recuperar con un lenguaje orientado a objetos.
  • Transacciones y mecanismos de bloqueos concurrente cuando acceden a datos proporcionados por Java Transaction API (JTA)
Ahora si vamos a crear nuestro proyecto con Netbeans 7.3, sino lo pueden hacer con Eclipse da igual para este pequeño ejemplo.

1) Crear una base de datos llamada ejemplo
2) Crear una tabla Innodb de nombre Persona con los siguientes datos.



3) Ahora vamos a crear una aplicación Java Standar Edition para ellos vamos al menú File (Archivo) --> New Project (Nuevo proyecto)


4) Eligen la ruta donde se guardará su proyecto.



5) Para poder realizar el enlace al motor de base de datos MySQL debemos incluir el JDBC, para ellos damos click derecho sobre la carpeta Libraries (Librerías)


6) Debe salir ahora una pantalla igual a la que muestro, deben buscar el nombre MySQL JDBC Driver



7) Ahora el proyecto debe quedar de la siguiente forma.


8) Ahora vamos a crear nuestra clase entidad y clase controladora. Para realizar esto y ordenar nuestro proyecto debemos crear dos paquetes de nombre Entidad y Control, entonces debemos dar click derecho sobre la carpeta Source Packages (Ruta de paquetes).




(Repitan el mismo proceso para el paquete Control)

9) Ahora debemos crear nuestra clase entidad, para esto damos click derecho sobre el paquete entidad, elegimos el menú New (Nuevo) --> Entiti classes from database (Clases entidad a partir de una base de datos)



Ahora sólo deben seguir las imágenes



Luego presionan el botón Next (Siguiente)


Ahora sólo deben configurar su conexión a su base de datos, en mi caso cambio la opción Database con el valor mysql y la cambio por la base de datos ejemplo.


Presionan luego a todo Next (Siguiente) y luego presionan Finish (Terminar)

10) Ahora debemos elegir las tablas para este ejemplo, elijo la tabla Persona y presiono el botón add (agregar)


Luego presionan el botón Next (Siguiente) y les aparecerá la siguiente pantalla donde sólo deben presionar el botón Finish (Terminar)


Podemos ver que Netbeans nos ha creado nuestra clase entidad con todas las anotaciones generales, entre ellas la más importante la anotación @Entity que le dice a la clase que es una clase entidad.



11) Ahora debemos crear nuestra clase Control, para esto debemos para esto damos click derecho sobre el paquete Control y elegimos la opción Other (Otro)


Elegimos la opción Persistence (Persistencia) y elegimos la opción JPA Controller Classes from Entity Classes (Clases controladoras JPA a partir de una clase entidad) y presionan el botón Next (Siguiente)


Elegimos la única clase entidad, que en este ejemplo es Entidad.Persona y presionamos el botón Add (Agregar) y presionamos el botón Next (Siguiente) y luego Finish (Terminar)


12) Así es como queda nuestro proyecto hasta el momento


13) Ahora mostramos el código como debe quedar nuestra clase.



Ya para terminar, yo no elegiría utilizar las clases hechas por el propio IDE por motivo que crea los métodos de manera ineficiente, por cada insert, update, delete realiza un begin y luego un commit o rollback.

Esto como sabemos sólo se debería hacer cuando sean dos o más transacciones.

Dejo una parte del código generado.

Nos vemos hasta la próxima su amigo Carlos Zacarías


domingo, 23 de diciembre de 2012

Configuración de Acces Point TP-Link TL-WA500G como un repetidor

Bueno aquí dejandoles un nuevo aporte, hace poco me he comprado un Access Point TP-Link TL-WA500G  porque necesito ampliar la intensidad de señal de una wifi, entonces que mejor que Access Point (AP) para este cometido, por diferentes razones:


  1. Fácil de configurar
  2. Barato

Lo negativo es la seguridad, pero algo es algo.

Antes que nada se preguntaran porque estoy escribiendo algo de esto si en teoría lo primero que coloque es fácil de configurar, bueno es que resulta fácil una vez que lo intentaste unas dos o tres veces y resultó bien.

Cuando compren este AP lo primero que les diré es que el manual es algo escueto y quizás no resulte como ustedes pensaban, porque dentro de ese manual dice hacer click aquí y click por alla y listo, pero esto no sirve de mucho.

Aquí les traigo la solución si es que no han logrado solucionar su problema con ese AP y la configuración que voy a mostrar es la de repetidor.

1) Debemos entrar a nuestro router para poderlo configurar, por defecto viene configurada la ip estática 192.168.1.254. Coloquen esta dirección ip en su navegador de preferencia y les saldrá una formulario que les pedirá usuario y contraseña. Por defecto es usuario admin y contraseña admin.



 2) Les saldrá una pantalla con su configuración del AP, algo parecido a la pantalla que muestro a continuación (claro la que yo muestro ya está configurada, pero la idea es esa)



 3) Debemos configurar la ip estática del AP, deben cambiarla a una ip que no termine en 254, para ellos deben ir al menú Network, por ejemplo en mi caso, la wifi que yo deseo intensificar es una wifi claro y trabaja con la red 192.168.0.x, entonces yo le he colocado al AP la ip 192.168.0.25. Entonces se preguntaran ¿Por qué no colocar con 192.168.0.254?, es que por lo general las wifi tienen como puerta de enlace predeterminada esa ip, así que les recomiendo cambiarla (Por si acaso).


4) Ahora debemos configurar el modo en que debe operar el AP, para esto debemos ir al menú Wireless --> Wireless mode, y aquí configuraremos nuestro AP como repetidor. Para esto debemos elegir la opción Universal Repeater.


5) Ahora debemos elegir la wifi que deseamos que se repita, para esto debemos presionar el botón Survey y aparecerá una lista con todas las wifi que el AP ha podido captar. La wifi que deseamos intensificar sólo debemos presionar el enlace Connect y la dirección MAC se colocará automáticamente en la caja de texto de Universal Repeater.


6) Ahora debemos presionar el botón Guadar.

7) Ya casi terminamos, ahora debemos configurar la seguridad WEP, para esto debemos ir al menú Wireless --> Security Settings y aquí configurar tal como lo muestra la pantalla, excepto por la contraseña. La contraseña de 64 bits que se coloca debe ser idéntica a la red wifi que van a intensificar, sino no podrán conectarse con ningún dispositivo.



Esto es todo, hasta nuevo aviso, su amigo Carlos Zacarías.

Seguidores