lunes, 27 de mayo de 2013

Consejos para crear una contraseña segura

Las contraseñas ofrecen la primera línea de defensa contra el acceso no autorizado al equipo o a cualquier servicio en linea. Cuanto más segura sea la contraseña, más protegido estarás contra hackers y software malintencionado. Debes tener siempre contraseñas seguras para todas tus cuentas.

Una contraseña segura:

  • Tiene ocho caracteres como mínimo.
  • No contiene el nombre de usuario, el nombre real o el nombre de la empresa.
  • No contiene una palabra completa.
  • Es significativamente diferente de otras contraseñas anteriores.
  • Está compuesta por caracteres de cada una de las siguientes cuatro categorías:

    1. Letras mayúsculas.
    2. Letras minúsculas.
    3. Números.
    4. Símbolos del teclado (todos los caracteres del teclado que no se definen como letras o números) y espacios
Una contraseña puede reunir todos los criterios anteriores y aun así ser insegura. Ya que en mucho de los casos se usan siempre palabras completas.


Puedes aplicar las siguientes recomendaciones a la hora de crear una contraseña:
  • Al menos ha de contener 8 caracteres, entendiéndose esto como lo mínimo indispensable, no como garantía de seguridad. A más caracteres, más seguridad, pero sin pasarse, a ver si vas a acabar pasando más tiempo escribiendo la contraseña que leyendo el correo.
  • No usar sólo letras, o peor aún, sólo mayúsculas o sólo minúsuculas.
  • Procurar no repetir caracteres, tanto letras como números.
  • Tampoco usar secuencias consecutivas lógicas de letras o números. Por ejemplo: abcd, 12345, hola123.
  • Intentar tener una contraseña distinta para cada sitio.
Si consideras que debes anotar la contraseña para poder recordarla, recuerda que no debes dejar escrito que es tu contraseña y debes mantenerla en un lugar seguro.

sábado, 25 de mayo de 2013

Complementos Firefox destacados para escritorio

New Tab Plus
Mejora tu nueva experiencia de pestañas con características y complementos adicionales. 

Click  Aquí para agregar complemento


Tube Enhancer Plus
Mira vídeos de YouTube en una barra lateral (y más) mientras navegas en la Web. 


Click Aquí para agregar complemento


TableTools2
Copia, ordena, busca, filtra y más. Toma el control total de tus tablas en línea


Click Aquí para agregar complemento

jueves, 23 de mayo de 2013

CONVERTIR NUMEROS A LETRAS CON PHP

En muchas ocasiones necesitamos de una función que convierta los números a valores en letras ya sea en una aplicación de facturación o cualquier otra que lo requiera y nos vemos en la necesidad de buscar en google alguna función ya escrita que nos facilite el trabajo, ya que ello nos ahorra muchas horas de programación. Sin duda  existen muy buenas funciones escritas en php que hacen tal operación  pero en este caso quiero recomendar la siguiente:

EnLetras expresa los números de manera muy eficiente, hasta ahora todas las cantidades que he convertido con esta clase han sido correctamente expresadas, también soporta decimales, el inconveniente es que solo soporta 2 decimales.

Puedes descargar el código fuente desde la pagina web del autor EnLetras.

miércoles, 22 de mayo de 2013

Inicio de sesión seguro php

Una variable de sesión PHP se utiliza para almacenar información acerca de, o cambiar la configuración de una sesión de usuario. Las variables de sesión contienen información acerca de un solo usuario, y están disponibles para todas las páginas en una sola aplicación.

PHP variables de sesión

Cuando se trabaja con una aplicación, se abre, hacer algunos cambios y luego se cierra. Esto es muy parecido a una sesión. El equipo sabe lo que eres. Se sabe cuando se inicia la aplicación y cuando se termina. Pero en Internet hay un problema: el servidor web no sabe quién eres y lo que haces porque la dirección HTTP no mantiene estado.

Una sesión de PHP soluciona este problema que le permite almacenar la información del usuario en el servidor para su uso posterior (por ejemplo, nombre de usuario, artículos de compra, etc.) Sin embargo, la información de sesión es temporal y se eliminará después de que el usuario ha abandonado el sitio web. Si usted necesita un almacenamiento permanente es posible que desee almacenar los datos en una base de datos.

Sesiones de trabajo mediante la creación de una identificación única (UID) para cada visitante y variables de tiendas basado en este UID. El UID se almacena en una cookie o se propaga en la URL.

Inicio de una sesión PHP

<?php
session_start();
?>

A continuación los script para el inicio de sesión seguro en php.

login.php contiene el formulario de recepción de datos para el inicio de sesión.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>Inicio de sesi&oacute;on</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- styles -->
    <link href="./assets/css/bootstrap.css" rel="stylesheet">
    <link href="./assets/css/login.css" rel="stylesheet">
    <link href="./assets/css/bootstrap-responsive.css" rel="stylesheet">
    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
      <script src="../assets/js/html5shiv.js"></script>
    <![endif]-->
    <!-- Fav and touch icons -->
<link rel="shortcut icon" href="./assets/ico/favicon.ico">
  </head>
  <body>
    <div class="container">
      <form class="form-signin" action="logeo.php" method="post">
        <h3 class="form-signin-heading">Por favor, identif&iacute;quese</h3>
        <input type="text" name="usuario" id="usuario" class="input-block-level" placeholder="Usuario" required autofocus >
        <input type="password" name="password" id="password" class="input-block-level" placeholder="Contrase&ntilde;a" required>
        <button class="btn btn-large btn-primary" type="submit">Entrar</button>
      </form>
    </div> <!-- /container -->
  </body>
</html> 

logeo.php contiene el script que procesa los datos de inicio de sesión.

<?php
/* Llamar a Cadena de Conexion*/ 
include ("functionConect.php");
conectar();
if($_POST && !empty($_POST['usuario']) &&  !empty($_POST['password']) ) 
{
//quitamos el posible SQLInjection del usuario
$usuario = mysql_real_escape_string($_POST['usuario']);  
//sacamos el hash del password para que se compare ya encriptado
$password = md5(mysql_real_escape_string($_POST['password']));
//vemos si existen registros que coincidan
$query = mysql_query("SELECT * FROM user ".
"WHERE username  = '{$usuario}' AND ".
"password = '{$password}' and status='1' ");
if(mysql_num_rows($query) == 1) 
{
session_start();
           $_SESSION['login'] = $usuario;
           //generamos un token aleatorio para el usuario
          $_SESSION['token'] = md5(rand().$_SESSION['login']);

           //actualizamos el token para qu sean iguales el de la db
           //y el de la sesión
           mysql_query("UPDATE user SET ".
           "token= '{$_SESSION['token']}' WHERE ".
           "username = '{$_SESSION['login']}'");
           
           //todo bien
           header("Location: .index.php");
           exit;

else {
//Destruimos la Sesion
Session_Start();
unset($_SESSION["login"]);
      header("Location: login.php");  
     }
}
else
{
//Si hay campos vacios redirecciono
header("Location: login.php");
}
?>
archivo functionConect.php, contiene los datos de conexión a la base de datos mysql
<?php 
function conectar()
{
$server=DB_HOSTNAME;//aqui va el nombre del servidor.
$user=DB_USERNAME;//nombre de usuario mysql del servidor. 
$pass=DB_PASSWORD;//contraseña del usuario mysql. 
$DB=DB_DATABASE;//nombre de la base de datos.
if (!$conexion=mysql_connect($server,$user,$pass))
{
echo "Error al conectar a la base de datos ".mysql_error();
exit();
}
 if (!@mysql_select_db($DB,$conexion)) 
{
  echo "Error al seleccionar la base de datos ".mysql_error();
  exit();
}
}
?>
<?php
echo "Usuario autorizado";
?>