Está en la página 1de 4

Foros aprenderaprogramar.

com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax,
Joomla, MySql y ms => Mensaje iniciado por: URKA84 en 04 de Septiembre 2014, 16:00

Ttulo: Seguridad mySQL - PHP ocultar contrasea y datos de acceso contra hackers
Publicado por: URKA84 en 04 de Septiembre 2014, 16:00

Hola.

Hace tiempo llevo haciendo una pgina web y me he dado cuenta de que necesito ocultar
mi contrasea -_- .

Porque sino alguien con malas intenciones podra acceder a mi Base de Datos (ya que la
contrasea est en pleno cdigo)

ejemplo de cdigo:
Cdigo: [Seleccionar]
$link = mysql_connect("mysql13.000webhost.com","a4047274_database","password");

Cmo ocultar la contrasea "password"?

Gracias por responderme.

Ttulo: Re:Ocultar contrasea en consulta mySQL - PHP


Publicado por: dongo en 04 de Septiembre 2014, 22:12

Hola Urka, para estas cosas, lo que se suele hacer, es crear un fichero llamado config.php
donde se definen los datos de la base de datos, un modelo de ejemplo de este fichero
podra ser el que sigue.

config.php(este fichero se suele guardar en una carpeta llamada inc o include, o en una de
tu preferencia):

Cdigo: [Seleccionar]
<?php
//Datosdeconfiguraciondelabasededatos
$servidor='Url_servidor';
$usuario='Usuario_bbdd';
$pass='contrasea_bbdd';
$bbdd='nombre_bbdd';
?>

Tras esto, se suele crear un fichero que se encarga de crear la conexin a la base de datos:

conexion.php(Este se suele almacenar en la misma carpeta, inc o include, o de tu


preferencia):

Cdigo: [Seleccionar]
<?php
require_once('config.php');

$conexion=mysql_connect($servidor,$usuario,$pass)
ordie('Error:Databasetohostconnection:'.mysql_error());

mysql_select_db($bbdd,$dbh)
ordie('Error:Selectdatabase:'.mysql_error());
?>

Tras esto se suelen establecer unos permisos de:

644 - para archivos


755 - para carpetas

Con estos dos ficheros, ya lo tenemos todo, cuando queramos realizar una una instruccin
sql sobre la base de datos, simplemente tendremos que incluir el fichero "conexion.php" y
usar la variable $conexion que contiene una conexin a la base de datos.

Sobre ocultar la $password, esto es lo que se suele hacer. Otras cosas que se suelen
realizar para conferir seguridad a un sitio, es configurar mysql para que solo permita
conexiones desde ips concretas, entonces solo se permitira acceso desde la maquina donde
se almacena tu sitio web.

Mas cosas, crear un usuario concreto en mysql para la base de datos, con los permisos
limitados, es decir que por ejemplo solo pueda hacer inserts, updates y select, y todo lo
que necesites dentro de tu sitio web, de esta manera, si te pillan la pass, solo podrn
realizar esas operaciones permitidas.

Otra cosa, es crear un usuario limitado solo a esa base de datos, por lo que si te pillan la
pass, pues solo podrn acceder a la base de datos de la web, pero no a las dems... si las
hubiera.

Otra cosa que se suele hacer, es usar sentencias preparadas para evitar la inyeccin sql. te
paso un enlace a la gua de php que habla sobre como usarlas.

http://php.net/manual/es/mysqli.prepare.php
(http://php.net/manual/es/mysqli.prepare.php)

Y bueno, pues si realizas una combinacin de todas estas cosas, conferirs una seguridad
mayor al servidor.

Y nada, quiz alguien pueda aportar algn consejo mas. Un saludo!!

Ttulo: Re:Ocultar contrasea en consulta mySQL - PHP


Publicado por: programador independiente en 05 de Septiembre 2014, 06:09

Hola amigo dongo, ahora hasta ac te ando siguiendo jeje.

Respecto a lo que pregunta el compaero URKA84, yo pensaba que por estar dentro del
cdigo php nadie podra ver ni contraseas ni nombres de usuarios, entonces si se puede
ver lo que hay dentro de un "<?php ?>" o cmo pueden obtener la contrasea?

De cualquier manera ya he hecho apunte de lo que mencionas aqu para utilizarlo yo


tambin as.

Gracias por tu ayuda, Dios les Bendiga y les Conserve la Salud.

Ttulo: Re:Ocultar contrasea en consulta mySQL - PHP


Publicado por: Ogramar en 05 de Septiembre 2014, 19:02

Hasta donde yo s es tal y como ha descrito dongo como trabajan los gestores de
contenidos php (como Drupal, Joomla,Wordpress, PrestaShop, Moodle, etc.). Estos gestores
estn preparados por equipos de programadores profesionales y si lo hacen as supongo
que es la forma adecuada. Esto no quita para que estos gestores tengan agujeros de
seguridad, igual que todo sistema. La seguridad es un aspecto ms de la programacin
pero tambin es un aspecto de los servidores y de la administracin de servidores. T
puedes tener bien programado un sistema, pero si el servidor tiene un fallo de seguridad y
un hacker accede al servidor te pueden destruir o robar lo que tengas dentro. Por eso
recomendaciones bsicas son mantenerse en servidores que den garantas, actualizar,
mantener copias de seguridad, etc. siempre que estemos desarrollando trabajos que
tengan algo de importancia. Salu2

Ttulo: Re:Ocultar contrasea en consulta mySQL - PHP


Publicado por: URKA84 en 06 de Septiembre 2014, 07:19

Muchas gracias por vuestras respuestas, voy a echarles un vistazo y os respondo en cuanto
lo pruebe.
Ttulo: Re:Ocultar contrasea en consulta mySQL - PHP
Publicado por: dongo en 08 de Septiembre 2014, 18:41

Efectivamente, como dice Ogramar, la seguridad no solo existe en el cdigo, sino que
tambin se encuentra en los servicios, en este caso hablamos del servicio mysql.

Mysql es un software servidor, y tiene infinidad de opciones de configuracin, desde limitar


desde que ips se puede acceder al servicio, hasta crear un usuario limitado, por ejemplo:
Un usuario al que solo se le permita hacer selects, con lo cual si ese usuario no puede hacer
inserts, ni deletes, ni drops, ni creates,.... entonces podemos facilitar sin problemas la pass
de ese user sin miedo a que nos ocasionen ningn dao.

La verdad que esto es un tema complejo y extenso, y ah muchas cosas que se pueden
permitir o denegar... Cuestion de estudiar las opciones de seguridad de mysql.

Citar
Respecto a lo que pregunta el compaero URKA84, yo pensaba que por estar dentro del cdigo php nadie podra ver
ni contraseas ni nombres de usuarios, entonces si se puede ver lo que hay dentro de un "<?php ?>" o cmo pueden
obtener la contrasea?

Sobree tu pregunta programador independiente, decirte que como tu bien dices al ser
cdigo php un usuario cualquiera sin altos conocimientos de seguridad y servidores, es
improbable que se haga con los datos de conexin a tu base de datos. En cambio un
usuario con altos conocimientos de seguridad y usando alguna tcnica maliciosa, es posible
que pueda hacerse con tus datos de conexin, por lo tanto, con los consejos qe ofrec
anteriormente, se aumenta bastante la seguridad de tu servidor mysql, aunque siempre
cabe la posibilidad de que llegue algn erudito que se haga con tus datos de conexin y te
rompa la bbdd.

Por otro lado, yo pienso que estos eruditos de la seguridad, no se molestaran en romper
una pagina personal, se suelen molestar mas en paginas con muchsimas visitas, donde
realmente pueden provocar un dao importante.

Saludos!!

Nota de edicin: Por supuesto, como dice Ogramar, la backup(copia de seguridad) de la


base de datos es imprescindible realizarla cada cierto tiempo y guardarla en lugar seguro,
ya sea un pen, un cd, disco duro, en la nube, etc.

Ttulo: Re:Ocultar contrasea en consulta mySQL - PHP


Publicado por: URKA84 en 15 de Septiembre 2014, 17:30

Hola, para qu es la instruccin:


Cdigo: [Seleccionar]
require_once('config.php');

He visto que dongo la utiliza al inicio del archivo "conexion.php".

Lo he mirado por internet pero no me ha quedado muy claro.

Ttulo: Re:Ocultar contrasea en consulta mySQL - PHP


Publicado por: URKA84 en 15 de Septiembre 2014, 17:32

Ah claro! ya lo he entendido

LOL

Es para traer los datos del archivo "config.php". :o

Ttulo: Re:Ocultar contrasea en consulta mySQL - PHP


Publicado por: javi in the sky en 15 de Septiembre 2014, 19:34
T mismo te has respondido ;D

Powered by SMF Simple Machines LLC 20062011


Pgina principal aprenderaprogramar.com

También podría gustarte