sábado, 24 de mayo de 2014

Alternativas al CAPTCHA para validar usuarios en formularios

Cualquier administrador de una página web ha debido lidiar en algún momento con la desagradable intromisión de un robot en su página web que envía decenas de correos al día desde el formulario de contacto o registra infinidad de usuarios en el área de registro del sitio web.

La tecnología que permite que los robots y malware hagan esto no es nueva y los problemas que generan son bien conocidos sobrecargando los servidores de correo, enviando correo basura o explotando vulnerabilidades potenciales de la página web para crear un agujero de seguridad; a pesar de esto no es una práctica común de todos los desarrolladores web implementar elementos que limiten el acceso de robots a los formularios de las páginas web.

Hace ya algún tiempo el CAPTCHA [Completely Automated Public Turing test to tell Computers and Humans Apart (Prueba de Turing completamente automática y pública para diferenciar computadoras (ordenadores) de humanos] ha sido empleado de manera bastante efectiva para diferenciar los usuarios humanos de las máquinas y así poder limitar de alguna forma los problemas generados por los spambots sin embargo, y a pesar de ser un código abierto,  no son pocos los desarrolladores que encuentran problemas implementando el algoritmo CAPTCHA por lo que tienden a obviarlo dejando desprotegidos los formularios.

Si bien es cierto que con un poco de práctica el CAPTCHA puede ser dominado a la perfección e implementado de rutina en todos los formularios existen alternativas rápidas y fáciles de programar que bien pueden sustituir el CAPTCHA o complementarlo, una forma fácil de hacerlo es mediante una sentencia lógica de validación.

Las preguntas de validación son fáciles de estructurar siguiendo los siguientes pasos:

1- Almacenar en una base de datos el par pregunta - respuesta
2- Generar un código para seleccionar de manera aleatoria la pregunta a incluir en el formulario
3- Incluir en el formulario un campo para introducir la respuesta a la pregunta por ejemplo:

La Capital de Francia es: _____________________

4- Incluir un script de validación donde si la respuesta es correcta (la respuesta ingresada corresponde con la almacenada en la base de datos) procesa el formulario, de lo contrario da error y vuelva a inicio

Como se puede ver con un poco de manejo MySQL y PHP se puede programar un sistema de preguntas aleatorias bastante efectivo y seguro, como siempre no existe sistema invulnerable pero al menos limitará el ataque de un buen número de robots y malware.

A la hora de planificar los pares preguntas - respuesta deben considerarse algunos detalles técnicos para evitar mal funcionamiento, entre estas consideraciones están:

- Usar preguntas cuyas respuestas son conocidas por la mayoría de las personas o, en su defecto, son fáciles de encontrar en Google; si se colocan preguntas como ¿Cuál es la raíz cuadrada del coseno de 35º elevado a la 4ª potencia? es muy probable que nunca se reciba un correo electrónico generado en el formulario ni por seres humanos ni por máquinas.

- Tratar de usar preguntas cuyas respuestas sean de una, máximo dos palabras

- Programar los pares pregunta-respuesta en el idioma de nuestro público objetivo; si se toma un script en inglés para una página web dirigida a público hispanoamericano es muy posible que se reciban pocos correos generados en el formulario de contacto y si de registro de usuarios se trata muchos menos aún.

- Aplicar una función donde la cadena de texto se convierta siempre a minúsculas (escribiendo también la base de datos las respuestas control en minúsculas), de esta manera no importa como escriba la respuesta el usuario al filtrar con la función correcta la respuesta a comparar con el control estará siempre en minúsculas.

Con esto ya estamos listos para comenzar a preparar preguntas de seguridad teniendo siempre en mente que regularmente deben agregarse más preguntas a la base de datos, en estos casos mientras más mejor, partiendo de este punto las opciones son infinitas, sólo hay que ponerse a programarlas.


viernes, 9 de mayo de 2014

¿Tu PC está Caliente?

Para nadie es un secreto que las computadoras generan calor, tampoco es nada nuevo ver uno o dos ventiladores (fan coolers) instalados en la computadora con el objetivo de disipar calor; en inicio los ventiladores, rendijas de ventilación y disipadores de calor están diseñados para brindar a cada procesador una ventilación y recambio de aire óptimos que le permitan funcionar dentro de un rango de temperatura adecuado pero ... ¿de verdad no se está recalentando la computadora?

Nueva de paquete la máquina va a funcionar adecuadamente pero con el uso, el paso del tiempo y factores medioambientales como el polvo, la humedad y el desgaste mismo de los elementos móviles de los ventiladores es posible que lo que damos por sentado sobre ventilación ya no sea así, es posible que veamos el ventilador girar e incluso lo oigamos pero persiste la duda ¿está haciendo bien su trabajo?

Rendijas de ventilación obstruidas por el polvo, cabellos y fibras enrollados en el eje del ventilador, polvo adherido a las aspas, grasa adherida a las ranuras de ventilación del procesador son sólo algunas de las situaciones que pueden generar mala disipación del calor dentro de la computadora lo cual redunda en
disminución del rendimiento e incluso riesgo de daño irreversible a los circuitos y demás componentes tanto del procesador como del resto de las tarjetas; ante este riesgo resulta pues apremiante saber como está la temperatura de nuestro PC.

Si bien Windows tiene lecturas de estos parámetros normalmente no los presenta al usuario, incluso hay un sistema de seguridad que apaga la máquina cuando esta alcanza una temperatura crítica (a fin de proteger los circuitos y evitar que se fundan) pero si hemos llegado a un punto donde la máquina se apaga por recalentamiento es probable que ya estemos abordando un poco tarde el problema.

Por fortuna existen diversas herramientas para monitorear la temperatura y rendimiento de los ventiladores de la computadora, algunas de pago otras gratuitas la mayoría se pueden descargar es instalar fácilmente, no ocupan mucho espacio en disco duro y mucho menos en memoria, en resumen consumen muy pocos recursos del sistema y ofrecen una gran protección contra el calor, elemento que literalmente podría destruir nuestra máquina.

De los muchos que se encuentran en internet nuestro equipo de desarrollo y mantenimiento ha probado (y recomienda) Speed Fan (se puede descargar Aquí de la página de Softonic) dado que ofrece no sólo lecturas de la temperatura del procesador, disco duro y sistema en general sino que también nos indica los voltajes de los ventiladores, las revoluciones por minuto y un buen número de parámetros que nos ayudarán a determinar si existe recalentamiento o si es necesario darle mantenimiento a los fan coolers para que ejecuten mejor su trabajo, adicionalmente presenta la función de Automatic Speed Fan la cual permite que la aplicación ajuste la velocidad de giro (RPM) de acuerdo a las temperaturas registradas, esto optimiza tanto el control de temperatura como la utilización de energía.

¿Se necesitan más razones para instalar un monitor de temperatura en nuestra computadora?