Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Hadess_inf en 27 Septiembre 2008, 16:32 pm



Título: Manera mas segura de guardar una clave en BD
Publicado por: Hadess_inf en 27 Septiembre 2008, 16:32 pm
Pues eso mismo, como guardo una clave en la BD. Sera con base64_decode($clave)
es decir:
$clave =base64_encode($_POST['txtpwd']);
$sql="insert into usuario values ('U001','$clave')";
mysql_query($sql);

Es segura esa forma ¿?
Y si no lo es, saber como.. xD

 ;D ;D ;D


Título: Re: Manera mas segura de guardar una clave en BD
Publicado por: Red Mx en 27 Septiembre 2008, 20:24 pm
depende que tan seguro


lo haria yo seria sacar el md5  y guardar el md5 cuando ingresen en el login le vuelves a sacar el md5 y si son iguales entonces fue la misma contraseña.


el problema de la encriptacion en base 64 es que la puedes volver a descifrar y que pasa que seria un riesgo hasta cierto punto


Título: Re: Manera mas segura de guardar una clave en BD
Publicado por: WHK en 28 Septiembre 2008, 19:40 pm
Una forma que yo utilizo es la siguiente:

Código
  1. $sql = "
  2. SELECT `estado` FROM `paginas`
  3. WHERE `id`
  4. LIKE CONVERT(_utf8 '".mysql_real_escape_string($_GET[$variable_std])."' USING latin1)
  5. COLLATE latin1_swedish_ci
  6. LIMIT 1;";

Para Ingresar carácteres normales dentro de una query, base64 si es una buena idea, es mas, así lo hice yo en mi sistema filemanager pero lo malo es que después si quieres modificar la base de datos o crear un buscador será muy dificil.

Código
  1. $sql = "
  2. SELECT `sección` FROM `paginas`
  3. WHERE `id`
  4. LIKE CONVERT(_utf8 '".(int)$_GET[$variable_num])."' USING latin1)
  5. COLLATE latin1_swedish_ci
  6. LIMIT 1;";

Al preestablecer (int) antepuesto a una variable o constante estás declarando que solo se aceptarán datos numéricos evitando también una inyección sql como por ejemplo index.php?id=-1+union+all+select+1,2,3...
Y cuando hago un Select y necesito una sola columna siempre termino en LIMIT 1 para evitar posibles fugas.

mysql_real_escape_string() Esta función te permite evitar inyecciones sql siempre y cuando el valor esté encerrado dentro de comillas ya que desde acá no podrás escapar con ningún tipo de carácter.
Ahora también es bueno eliminar los slashses que agrega el apache de la siguiente forma:
Código

Eso es lo que se yo sobre seguridad básica cuando programas en php utilizando mysql.


Título: Re: Manera mas segura de guardar una clave en BD
Publicado por: Karman en 4 Octubre 2008, 06:04 am
lo standart es md5, sha1 (el que yo utilizo), crypt...

S2


Título: Re: Manera mas segura de guardar una clave en BD
Publicado por: Meta en 4 Octubre 2008, 06:17 am
«Leo en Kriptópolis un interesante artículo respecto al uso de GPU como la de Nvidia GForce 8 y GForce 9 para romper contraseñas. Los resultados (según ellos) son abrumadores, 1000 millones de contraseñas en un segundo. La empresa responsable del software de recuperación de contraseñas es elcomsoft.»

Fuente 1 (http://barrapunto.com/articles/08/10/02/2016203.shtml).

Nuevo sistema, apoyado en tarjetas gráficas, "tritura" contraseñas a velocidades de vértigo

Hace menos de un año, Fernando Acero comentaba en Kriptópolis cómo no tardaríamos en asistir al uso de las GPU de las tarjetas gráficas para acelerar ciertos cálculos colaborando con la CPU.

Hoy mismo, Elcomsoft anuncia una nueva versión de su programa para recuperación de contraseñas de forma distribuida con una peculiaridad interesante: la contribución a la CPU de las GPU de múltiples tarjetas gráficas Nvidia (como la GeForce GTX 280) trabajando en paralelo.

El resultado parece impresionante, ya que el sistema es capaz de explorar hasta 1.000 millones de contraseñas por segundo. Sin llegar a tanto, y sólo para hacernos una idea, mientras un Core2Duo es capaz de probar 200 contraseñas por segundo, la adición al sistema de una simple GeForce GTX260 logra elevar la cifra hasta las 5.000 contraseñas por segundo...

Están soportadas todas las GeForce 8 y GeForce 9, pero ni siquiera es preciso que todas las tarjetas sean idénticas.

Entre las principales víctimas de esta bestia con esteroides, las contraseñas de acceso (LM y NTLM) de Windows (NT, 2000, XP, 2003 y Vista), los "hash" MD5 y las contraseñas de documentos de Office 2007.

Fuente 2 (http://www.kriptopolis.org/gpu-rompe-passwords).


Título: Re: Manera mas segura de guardar una clave en BD
Publicado por: Karman en 4 Octubre 2008, 06:24 am
me parecen un poco exagerados tus números... pero de todas formas... hace años que dicen que las contraseñas deben ser complejas y de largo tamaño, una contraseña "HOLA" te creo que logren romper...

S2


Título: Re: Manera mas segura de guardar una clave en BD
Publicado por: Ertai en 7 Octubre 2008, 01:57 am
Código
  1. for($i=0;$i<69;i++) {
  2.   if($i%2)
  3.     $pass = md5("3324¨Ñ9(=00" . $pass . "()/%asd*'¡");
  4.   else
  5.     $pass = sha1("&/BS((( X(" . $pass . "dfu(//')=(");
  6. }
  7. /* Utiliza las GeForce que quieras ;) */
  8.