- 1

Desarrollo web con G2: Framework PHP práctico y seguro
03:13 - 2

Desarrollo web con PHP y Yii: Instalación y uso eficiente
06:39 - 3

Arquitectura MVC: Modelo, Vista y Controlador
06:57 - 4

Instalación y Configuración de Yii en Entorno Local
05:13 - 5

Estructura de Archivos en Proyectos Yii2 Básicos
10:39 - 6

Configuración Básica de Proyectos en Yii con Variables de Entorno
17:18 Quiz: Introducción a desarrollo web con PHP y Yii
Ofuscación y Validación de Contraseñas en Yii Framework
Clase 22 de 35 • Curso de Desarrollo Web con PHP y Yii2
Contenido del curso
- 10

Comandos en Yii: Creación y Ejecución de Controladores en Terminal
12:01 - 11

Modelos en PHP: Creación y Manipulación de Datos
11:38 - 12

ActiveRecord: Integración de Bases de Datos en Frameworks PHP y Ruby
11:15 - 13

Gestión de Autores y Libros en Yii: Creación y Consulta Eficiente
15:22 - 14

Relaciones ActiveRecord en Yii: Conectar Libros y Autores
07:59 - 15

Relaciones de uno a muchos en Yii: Obtener libros de un autor
10:23 - 16

Creación y Uso de Controladores Web en Yii Framework
11:56 - 17

Redirección y manejo de errores en controladores Yii
16:02 - 18

URLs Amigables: Gestión y Creación con URL Manager en PHP
10:14 - 19

Vistas en PHP con Yii y Smarty para Web Apps Sin Frameworks Frontend
10:39 - 20

Plantillas Smarty con Yii: Instalación y Uso Básico
14:30 Quiz: Modelos, vistas y controladores
- 21

Creación y Gestión de Usuarios en Aplicaciones Web Seguras
14:08 - 22

Ofuscación y Validación de Contraseñas en Yii Framework
11:21 - 23

Implementación de Login y Gestión de Usuarios en Yii2
11:33 - 24

Controlador en Yii: Creación y Manejo de Usuarios
11:09 - 25

Creación de Formularios con ActiveForm y Smarty en PHP
10:39 - 26

Validación de Datos en Modelos y Formularios con Yii2
15:01 - 27

Validaciones y Filtros en PHP para Gestión de Usuarios
08:52 Quiz: Manejo de usuarios con Yii2
- 28

Creación y Gestión de Libros en Aplicaciones Web
12:50 - 29

Crear y Gestionar Repisas de Libros en PHP
08:13 - 30

Condicionales y funciones para gestionar libros en la aplicación
05:49 - 31

Calificación de Libros con Validación en PHP y Yii Framework
15:29 - 32

Generación de Información a Partir de Datos en Bases de Datos
15:05 - 33

Relaciones de Tablas en Bases de Datos: Cálculo de Promedios
13:22 - 34

Modificaciones de Menú y Layout en Aplicación Web con G
15:00 Quiz: Enlaces, navegación y tablas intermedias
¿Cómo asegurar contraseñas en Yii?
El marco de trabajo Yii ofrece múltiples herramientas para manejar de forma segura la información de usuario, especialmente las contraseñas. A través de las funciones before y after en cada paso del modelo, podemos realizar un tratamiento específico de los datos durante su procesamiento. Un ejemplo común es el manejo de contraseñas, donde debemos asegurarnos de que estén ofuscadas antes de guardarlas en la base de datos.
¿Qué son los métodos before save y after save?
Los métodos before save y after save pertenecen a la clase modelo de Yii y nos permiten ejecutar código antes y después de guardar los datos. Estos métodos facilitan el seguimiento de la información y permiten ejecutar tratamientos especiales, como ofuscar contraseñas.
Para ofuscar contraseñas, primero validamos que contengan los caracteres requeridos, y antes de salvarlos, transformamos el texto claro (por ejemplo, "patito 123") aplicando una función de hash como MD5 combinada con otros parámetros como el nombre de usuario y una "sal" del sistema.
Implementación de before save para contraseñas
Aquí hay un ejemplo de cómo implementar el método before save para manejar contraseñas:
public function beforeSave($insert)
{
if (parent::beforeSave($insert)) {
if ($insert) { // Nuevo usuario
$this->password = $this->ofuscatePassword($this->password);
}
return true;
} else {
return false;
}
}
protected function ofuscatePassword($password)
{
$salt = getenv("SALT");
if (empty($salt)) {
throw new Exception("noSalt");
}
return md5(sprintf('%s%s%s', $password, $this->username, $salt));
}
Ejecución y verificación desde línea de comandos
Para probar el manejo de usuarios y contraseñas, utilizamos un controlador en línea de comandos que nos permite crear y verificar usuarios. Así se logra que las contraseñas se almacenen de manera segura y se puedan validar correctamente:
public function actionNew($username, $password)
{
$user = new User();
$user->username = $username;
$user->password = $password;
if ($user->save()) {
printf("New user OK, ID: %d\n", $user->id);
} else {
printf("Problema creando usuario.\n");
}
}
public function actionCheck($username, $password)
{
$user = User::findOne(['username' => $username]);
if (!empty($user) && $user->password === $user->ofuscatePassword($password)) {
printf("Login válido\n");
} else {
printf("Nel\n");
}
}
Para verificar que la funcionalidad está implementada correctamente, se pueden ejecutar comandos como:
-
Crear un nuevo usuario:
php yii user/new "username" "password" -
Comprobar el usuario:
php yii user/check "username" "password"
Beneficios de usar un sistema de hashing
El uso de un sistema de hashing para contraseñas ofrece grandes beneficios en términos de seguridad:
-
Protección de datos sensibles: Las contraseñas se almacenan como hashes, no como texto plano. Esto dificulta el acceso a las contraseñas originales por parte de intrusos.
-
Mayor seguridad con "sal": La "sal" añade un extra a la seguridad, haciendo que incluso contraseñas idénticas no generen el mismo hash en diferentes cuentas de usuario.
-
Integridad en las validaciones: Permite realizar validaciones confiables del lado del servidor asegurando que las credenciales coincidan correctamente con el hash almacenado.
Este enfoque otorga un nivel adicional de seguridad en el manejo de usuarios y contraseñas dentro de un sistema Yii, protegiendo efectivamente la información crítica.