Login seguro PHP con MySQLi: Descargar
Login seguro PHP con MySQLi. La problemática actual se basa en la seguridad de nuestros sistemas y si observamos las estadísticas son miles de sitios que son violentados por accesos no deseados. Las historias de páginas hackeadas son numerosas en las noticias, los desarrolladores están buscando las mejores maneras de asegurar sus sitios. Sin embargo, los sistemas de login para acceder al sistema son los lugares preferidos por personas mal intencionadas.
Si vuestro sitio tiene un sistema de usuarios o un buscador de noticias, podrías estar en riesgo grave de ser vulnerado y los datos de tus usuarios podrían verse comprometidos severamente. Esta articulo mostrará un intento de hacer un login seguro con PHP. Por lo tanto, podemos haber perdido algunos concejos en nuestro código.
Login seguro PHP con MySQLi
A continuación, se muestra una lista de posibles ataques que este tutorial intenta opacar contra:
- Inyecciones SQL
- Hacking de sesión
- Escucha de red
- Cross Siete Scripting
- Ataques de fuerza bruta

Cosas que se necesitará para lograr nuestro cometido.
Como vamos a usar el conjunto mysqli_ * de clases PHP para acceder a nuestra base de datos MySQL necesitaremos las siguientes versiones de PHP y mySQL.
- PHP versión 5.3 o posterior
- MySQL versión 4.1.3 o posterior
Ejemplo #01 Login de usuario
– Crear nuestra base de datos y tablas
CREATE DATABASE IF NOT EXISTS `login` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `login`; -- -- Estructura de tabla para la tabla `users` -- CREATE TABLE IF NOT EXISTS `users` ( `user_id` int(10) unsigned NOT NULL auto_increment, `name` varchar(50) NOT NULL, `email` varchar(60) NOT NULL, `password` varchar(60) NOT NULL, `social_id` varchar(100) NOT NULL, `picture` varchar(250) NOT NULL, `created` datetime NOT NULL, PRIMARY KEY (`user_id`), KEY `email` (`email`), KEY `login` (`password`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
– La conexion con la base de datos y sesiones
<?php
ob_start();
session_start();
require_once 'config.php';
?>
<?php
if( !empty( $_POST )){
try {
$user_obj = new Cl_User();
$data = $user_obj->login( $_POST );
if(isset($_SESSION['logged_in']) && $_SESSION['logged_in']){
header('Location: home.php');
}
} catch (Exception $e) {
$error = $e->getMessage();
}
}
//print_r($_SESSION);
if(isset($_SESSION['logged_in']) && $_SESSION['logged_in']){
header('Location: home.php');
}
?>
Nota:
Al recibir comentarios acerca del script se optó por actualizar algunas brechas de seguridad.
Bueno, espero que les sirva el código.