debo aclarar que esto es solo un ejemplo y que no afecta la seguridad de las Bases de datos.
pero de igual manera voy a expresar lo que se al respecto y espero que todo el que conozca del tema pueda agregar algo de información que pueda enriquecer este tema.
pedro escribió:
jhony192 escribió:
Código :
<? #ejemplo: #include('lib.inc.php'); //incluir libreria de funciones #$conex=mysql_connect('host','user','pass'); #mysql_select_db('database',$conex); ?>
Con las bases de datos y sus conexiones NO se juega.
tengan bien claro que como dice pedro: "Con las bases de datos y sus conexiones NO se juega."
asi que los detalles que les voy a dar tendran que mejorarlos a gusto y criterio de cada uno de vosotros.
yo sugiero hacer la conexion a la Base de Datos en el archivo
lib.inc.php que por lo general es el que uso para meter las librerias.
y enfocar la seguridad a este archivo.
a continuación el archivo lib.inc.php
Código :
<? # Aseguramos que no se pueda acceder al archivo via web. if(basename($_SERVER['PHP_SELF'])=="lib.inc.php") exit; function conex() { $conex=@mysql_connect('localhost','user','pass'); @mysql_select_db('database',$conex); return $conex; } #aqui metes el resto de las funciones ?>
note que en cada una de las funciones de mysql he colocado un @
esto es para que en caso de ocurrir algún error no muestre detalles del error al usuario, estos arrobas "@" hay que retirarlos mientras se configura la conexión hasta que sea satisfactoria, luego de ser satisfactoria la conexión se le vuelven a agregar los arrobas, la razón por la cual no queremos que se muestre el error es la siguiente, en caso de que la conexión sea insatisfactoria, nos mostrara un error muy parecido al siguiente:
Código :
Warning: mysql_query(): Access denied for user: 'user@localhost' (Using password: yes) in /home/google/www/sites/lib.inc.php on line 34
para cualquiera puede ser un simple error. pero para un Cracker que este en busca de un "Bug" (agujero de seguridad), esto puede sser un muy buen comienzo para efectuar un ataque, les explico por que, este error esta mostrando al usuario dos cosas que debemos ocultar, primero el usuario de la Base de datos (en este caso "user" ver + arriba) y el servidor donde se encuentra la Base de datos (en este caso "localhost" ver + arriba)
aparentemente esto no parece muy importante, pero creanme podria acceder a una Base de datos solo con esos dos datos.
lo de localhost ya sabemos que es el servidor local y es hasta por defecto el que usaremos, hay otras maneras de asegurar esa parte, y el nombre de usuario tambien para los casos donde permitimos acceder a todos los servidores a nuestra base de datos.
a continuación la forma de Restringir el acceso y limitarlo a solo acceso del servidor local.
voy primero a citar lo siguiente:
jhony192 escribió:
si usas cPanel en la configuración de bases de datos busca al final algo como esto:
Puedes:
1. Agregar % para que pueda acceder cualquier conexion desde cualquier IP (esta opcion es de baja seguridad, no se recomienda)
2. Agregar tu direccion IP
3. en caso de que estes en una red local desde donde tendras que conectarte desde cualquier PC de esa red usa
192.168.1.%
reemplaza 192.168.1
por el inicio de las IPs de tu red
ejemplo que tu red tenga la siguientes direcciones IP
201.243.243.1
201.243.243.5
201.243.243.8
201.243.243.15
usarias en este caso:
201.243.243.%
aqui hacia referencia a el modo de permitir el acceso desde otras maquinas, mientras se esta creando las conexiones desde afuera, como en el caso de conexiones desde Dreamweaver, eso debera ser temporal porque luego de estar terminada nuestra conexión y requerir ponerla a funcionar desde la web no necesitaremos accesos externos, asi que eliminamos % en caso de que haya sido agregado y dejaremos solo localhost o 127.0.0.1 para que solo desde el servidor se pueda acceder, asi limitamos el acceso a solo en el servidor.
mas adelante dare mas detalles sobre seguridad en Mysql, requerden solo permitir acceso a las bases de datos para localhost y 127.0.0.1
esdto aumentara la seguridad en un 13% mas no estara 100% seguro hasta que se hagan ciertos cambios adicionales a otros recursos del servidor.
en el caso del Plesk solo se le permite acceso de este tipo.
PD:La seguridad de tu web solo depende de ti, los cracker solo tienen acceso a las puertas que puedas dejarle abiertas.
usa la logica y encargate de ser tu quien asegure el servidor.