elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Seguridad Login-Registro PHP/MySql
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Seguridad Login-Registro PHP/MySql  (Leído 5,106 veces)
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Seguridad Login-Registro PHP/MySql
« en: 3 Diciembre 2014, 22:57 pm »

Hola!

Estoy realizando una web del estilo compra/venta y aunque me manejo relativamente bien en la programación web, no tengo tanta experiencia formada..

Me gustaría leer de otros usuarios mas experientes, cuales son los mejores métodos para tener un registro y un login seguro en PHP y MySQL..

Estoy viendo de usar algo asi:

Código
  1. <?php
  2.  
  3. include_once("functions.php");
  4.  
  5. $mysqli = connect();
  6.  
  7. $email = mysqli_real_escape_string($mysqli, strip_tags($_POST['emilio']));
  8. $pass = mysqli_real_escape_string($mysqli, strip_tags($_POST['psw']));
  9.  
  10. $stmt = $mysqli->prepare("SELECT email, pass FROM users WHERE email = ? AND pass = ?");
  11. $stmt->bind_param('ss', $email, $pass);
  12. $stmt->execute();
  13. $stmt->bind_result($Umail, $Upass);
  14.  
  15. if($stmt->fetch() == 'true')
  16. {
  17. echo "Login!!";
  18. } else{
  19. echo "Logout!!";
  20. }
  21.  
  22. $stmt->close();
  23.  
  24. ?>

functions.php

Código
  1. function connect()
  2. {
  3. include_once("db.php");
  4. $mysqli = new mysqli($host, $user, $pass, $db);
  5. if ($mysqli->connect_errno) echo "Fallo al contenctar a MySQL: " . $mysqli->connect_error;
  6. return $mysqli;
  7. }

Ya se que el tema es super extenso, que hay muchas formas de protegerse y lo mejor es combinarlas, se que no solo es cuestión de código, sino de seguridad en el servidor también.. no pretendo una explicación detallada, pero al menos lo fundamental, que no puede faltar!!  :rolleyes:

Voy a numerar las que yo conozco, y si falta algo me ayudan comentando abajo..

  • Usuarios restringidos MySql
  • Cifrado de contraseña
  • Permisos restringidos de las carpetas y archivos PHP
  • Contador de intentos de login
  • Escapar caracteres "malos"

Aclaro.. hablo de lo fundamental, que no debería faltar nunca para un registro/login seguro..

Y por ultimo, no existe algún "proyecto" que facilite todas las funciones de seguridad? O sea,, algún código ya armado y testeado? Aunque sea de pago, vale la pena por la seguridad del sitio..

Saludos! Perdon si es muy largo el post


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Seguridad Login-Registro PHP/MySql
« Respuesta #1 en: 4 Diciembre 2014, 00:07 am »

Yo sólo utilizo mysqli real scape para el nombre de usuario. La contraseña la almaceno en SHA1, y ya no hay problema.


En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Seguridad Login-Registro PHP/MySql
« Respuesta #2 en: 4 Diciembre 2014, 00:15 am »

- No almacenes la contraseña en texto plano. El uso de hashes de comprobacion (md5,sha1,sha512) esta desaconsejado. Mira alternativas como bcrypt.

- Si usas prepared statements no deberias tener problemas con sqli.

- Asegurate de evitar DoS (inputs muy largos). Restringir el input a una cantidad razonable como 1024 bytes.

- No escapes caracteres malos. Es mejor tener una whitelist que una blacklist.

- Asegurate que procesas correctamente el encoding.

Citar
Y por ultimo, no existe algún "proyecto" que facilite todas las funciones de seguridad

Si.. casi cualquier framework. Y deberias usarlo ya que ya hay gente que se ha preocupado por hacer seguras estas cosas.. no hace falta reinventar la rueda. Mirate alguno basico como CodeIgniter.

Saludos
En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Seguridad Login-Registro PHP/MySql
« Respuesta #3 en: 4 Diciembre 2014, 17:20 pm »

Gracias por las respuestas! Tendré en cuenta esos consejos..

Citar
Y por ultimo, no existe algún "proyecto" que facilite todas las funciones de seguridad? O sea,, algún código ya armado y testeado? Aunque sea de pago, vale la pena por la seguridad del sitio..

Citar
Si.. casi cualquier framework. Y deberias usarlo ya que ya hay gente que se ha preocupado por hacer seguras estas cosas.. no hace falta reinventar la rueda. Mirate alguno basico como CodeIgniter.

Exacto! Aunque puse al final eso, lo mejor es usar algo ya testeado, a parte del tiempo que consume programar registro y login,, pero siempre es bueno saber como funcionan las cosas.. voy a mirar ese que me decis ahi..

Gracias otra vez! Saludos!
En línea

JorgeEMX
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.615



Ver Perfil WWW
Re: Seguridad Login-Registro PHP/MySql
« Respuesta #4 en: 5 Diciembre 2014, 01:52 am »

Algo que te quitará muchos dolores de cabeza es casi casi obligar a los usuarios a crear contraseñas seguras. De ahí, ver que no te hagan inyecciones SQL y por último, asegurarte que puedes restringir la cantidad de peticiones al servidor.
En línea

Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Seguridad Login-Registro PHP/MySql
« Respuesta #5 en: 5 Diciembre 2014, 20:56 pm »

Hi!

Citar
Algo que te quitará muchos dolores de cabeza es casi casi obligar a los usuarios a crear contraseñas seguras. De ahí, ver que no te hagan inyecciones SQL y por último, asegurarte que puedes restringir la cantidad de peticiones al servidor.

El servicio de hosting deberia de controlar lo de las peticiones o yo?

Gracias! Saludos!
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Seguridad Login-Registro PHP/MySql
« Respuesta #6 en: 5 Diciembre 2014, 21:16 pm »

Contraseñas seguras, requiriendo por ejemplo un número, una letra, y 8 caracteres mínimo. Eso lo validas en el PHP, y lo pides en el JS.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sistema de Login - Registro [Usando el registro de Windows]
Programación Visual Basic
ToNy_EsP 2 4,247 Último mensaje 28 Febrero 2009, 18:10 pm
por seba123neo
Login con PHP y mysql
PHP
-Gosw- 9 8,840 Último mensaje 23 Mayo 2009, 21:35 pm
por s E t H
login php mysql jquery
PHP
Dosjota 3 5,602 Último mensaje 25 Julio 2010, 12:40 pm
por pisagatos
Registro login/logout
Seguridad
mazu 5 5,499 Último mensaje 28 Agosto 2010, 17:02 pm
por Novlucker
Login / Registro
PHP
Rave1996 2 2,638 Último mensaje 6 Mayo 2018, 22:48 pm
por Rave1996
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines