2009-07-04 15 views
6

Me preguntaba (y utilicé Google sin un resultado claro) si hay alguna forma de conectarse a una base de datos MySQL con PHP usando una contraseña hash. Decir que tengo el siguiente:¿Conectarse a MySQL con contraseña hash?

Password (plain): 'foobar' 
Password (sha1): '8843d7f92416211de9ebb963ff4ce28125932878' 

Ahora me gustaría conectar a MySQL como esto (usando la función mysql_ * como ejemplo, estoy usando DOP sin embargo):

$db_link = mysql_connect ('localhost', 'user', '8843d7f92416211de9ebb963ff4ce28125932878'); 

que esto sea posible ? ¿Alguien ha hecho esto antes?

+0

Si alguien tiene acceso al código, puede iniciar sesión sin importar cuál sea su contraseña. Simplemente use una contraseña larga generada al azar y no la muestre al usuario :-). –

Respuesta

2

La respuesta corta es no.

Pero, solo me pregunto ... ¿cuál es su verdadera preocupación? ¿Alguien hackeado su servidor y descubierto su contraseña?

+0

Solo privacidad, ¿le gustaría cuando (por ejemplo) se registra en un sitio web sin que su contraseña esté encriptada en la base de datos? – Stefan

+0

La razón por la que debe hash (no cifrado) las contraseñas de personas no es para proteger sus datos, sino para evitar que los piratas informáticos, que ya han violado su seguridad y tienen acceso a todo, puedan tomar sus datos de acceso y reutilizarlos. acceda a sus datos en otros sitios, como el correo electrónico. Solo tenga cuidado cuando camina entre la ofuscación y la seguridad. – Hans

10

Entonces el "hash" sería ser la contraseña. ¿Cuál sería el beneficio?

+0

Entonces, alguien, incluso si obtiene los datos de conexión de texto sin formato, no sabría la contraseña del usuario. Lo cual solo importaría si usa la misma contraseña en todo. – colithium

+0

Pero dado que usted, como desarrollador/administrador precavido, ya está preocupado por esto, no usaría esta contraseña también en cualquier otro lugar ;-) Y la habrá colocado en un lugar no accesible a través de su servidor web. – VolkerK

+0

El beneficio sería la privacidad. Estoy desarrollando una aplicación que almacena los valores de conexión de la base de datos (en una base de datos 'maestra') para usar la aplicación. – Stefan

1

el caso de uso consistiría en tener varios desarrolladores editando el archivo .php que contiene la contraseña de sql connect que quizás no desee que conozcan.

Creo que una solución sería mover la declaración de conexión a un archivo como ese, asegúrese de que no tiene una variable de $ password, porque alguien podría simplemente llamarla e imprimirla más tarde en su archivo .php

mysql.php 
<?php 
    mysql_connect('db.cs.dal.ca','user','password'); 
    @mysql_select_db($database) or die("Database Error ".mysql_error()); 
?> 

y sólo dará a su auto rw ------- permisos para el archivo mysql.php, a continuación, en todos sus archivos .php accesibles grupo puede basta con incluir ese archivo para evocar una conexión.

index.php 
<?php include("mysql.php") ?> 

<!-- some web content --> 

<?php mysql_close(); ?> 

y darle a su grupo de desarrolladores rw-rw ---- permisos en todos los demás archivos .php, siempre y cuando el propietario del archivo mysql.php puedan leerlo debe ejecutarse en el servidor php .. ... creo.

Todavía estoy paranoico por tener mi contraseña en un archivo en texto plano, porque podría accidentalmente publicarla en un foro si estoy solucionando problemas, o simplemente dejar el archivo abierto en mi pantalla. Hay una razón por la que cada campo de contraseña entra * ** en lugar de mostrar caracteres de texto sin formato que: P

0

respuesta simple es "No puedes."

Sé lo que está intentando lograr: Probablemente esté en un plan de alojamiento compartido y no pueda poner su archivo de configuración encima de la carpeta html.

Stefan está pensando que un hacker simplemente estaría buscando el archivo de configuración y quiere hacer que tenga que trabajar para la información. Una vez que el hacker se da cuenta de que necesita más información, tiene que crackear el sitio por segunda vez.

Esto no tiene nada que ver con una tabla de nombres de usuario & contraseñas. Esto es para el archivo de configuración de MySQL.

Cuestiones relacionadas