2011-05-11 14 views
5

soy un principiante total en la programación web. Estoy tratando de crear un sitio web simple que está leyendo datos de una base de datos SQL. Al principio, yo acabo de escribir la contraseña de inicio de sesión de base de datos y directamente en el código php:Ocultar la información de inicio de sesión de la base de datos en código PHP

<?php 
$username = "login"; 
$password = "pw"; 
mysql_connect("server", $username, $password); 
... 
?> 

Esto obviamente no es una muy buena idea! Entonces, ¿cuál es una forma (mucho) más "segura" de hacer esto? Leí sobre poner el código php en un archivo separado, es decir, no en el documento php principal del sitio web, y luego restringir el acceso a ese archivo. Tal vez por un archivo .htaccess. ¿Es este el camino a seguir?

+0

¿Por qué no debería ser una buena idea? Si no repite las credenciales, nadie puede verlas si no obtiene acceso a su servidor web. – Tim

+3

¡Buena pregunta, pero ya se ha hecho! No hay * mucho * camino más seguro. Aquí hay un duplicado: [¿Cómo proteger las contraseñas de la base de datos en PHP?] (Http://stackoverflow.com/q/97984) –

+0

¿Qué tiene de malo este enfoque en su opinión? – Gumbo

Respuesta

5

El archivo config.php y la .htaccess es una buena manera clásica/ir. Es la forma en que generalmente se hace con CMS o frameworks.

Como se ha señalado por JohnP, también se puede almacenar el config.phpfuera del directorio público, que significa que no se puede acceder a través de HTTP. Esto es solo un poco mejor para la seguridad (si no comete un error con su .htaccess, no hay más riesgos).

ejemplo de estructura de archivos:

  • config/ - archivos> configuración
  • lib/ -> bibliotecas y utilidades archivos PHP
  • public/ -> todo lo que los páginas/archivos/imágenes públicas ...

De esta manera, http://www.your-site.com/ apunta a public/, por lo que no hay forma de acceder a la configuración. Pero esta solución implica que puede cambiar el directorio web raíz (o que ya es así).

Por último, hay que recordar para establecer este archivo lectura y escritura por el usuario Apache solamente, no todo el mundo (UNIX derechos de acceso a archivos), de modo que si alguien acceder a su servidor a través de otro usuario, éste puede' Lee el archivo.

1

Normalmente lo pone en un archivo de configuración y accede a los valores de configuración a través de PHP.

Por lo general, un proyecto está organizado de tal forma que su código de aplicación y su código de configuración están fuera de su webroot y solo sus recursos públicos (index.php, imágenes, scripts u otros recursos) están disponibles a través del acceso directo.

+0

Si tiene acceso al código fuente, probablemente tenga acceso al archivo de configuración, puede ser una buena práctica en términos de administración de configuración, ¡pero no es más seguro! –

+1

@JamesAnderson definitivamente. No estaba insinuando que fuera seguro de lo que estaba haciendo ahora. Esto fue más una guía sobre cómo estructurar las cosas – JohnP

Cuestiones relacionadas