feat(security): Implementar sistema de contraseñas seguro con hashing

- Añadir hashing bcrypt para todas las contraseñas nuevas y existentes
- Implementar verificación segura con password_hash() y password_verify()
- Migrar 10 contraseñas existentes de texto plano a formato hash
- Agregar protección CSRF en formulario de login
- Implementar rate limiting (5 intentos/minuto) contra fuerza bruta
- Mejorar formulario de edición con campos de contraseña seguros
- Agregar validación de coincidencia y longitud mínima de contraseñas
- Sanitización de inputs y validación de formato de email
- Prevenir exposición de hashes en interfaz de usuario

Cambia vulnerabilidad crítica donde las contraseñas se almacenaban y viajaban en texto plano.
This commit is contained in:
2026-01-09 15:24:26 -06:00
parent cb1a44e380
commit 448a2aa240
8 changed files with 169 additions and 36 deletions

View File

@@ -85,11 +85,14 @@
<td><input name="email" id="email" type="text" class="largeInput" style="width:290px" value="{$info.email}"/></td>
</tr>
<tr>
<td height="40">Contrase&ntilde;a:</td>
<td><input name="password" id="password" type="text" class="largeInput" style="width:290px" value="{$info.password}"/></td>
<td height="40">Nueva Contrase&ntilde;a:</td>
<td>
<input name="password" id="password" type="password" class="largeInput" style="width:290px" placeholder="Dejar en blanco para no cambiar"/>
<br><small>Si no desea cambiar la contraseña, deje este campo vacío.</small>
</td>
<td width="10"></td>
<td></td>
<td></td>
<td>Confirmar:</td>
<td><input name="password_confirm" id="password_confirm" type="password" class="largeInput" style="width:290px" placeholder="Confirmar nueva contraseña"/></td>
</tr>
<tr>
<td colspan="5" align="center" height="50"><b>.:: IDENTIFICACION OFICIAL ::.</b></td>