2010-09-20 32 views
5

Tengo un sitio web desarrollado en PHP. Hay 2 clases (en 2 archivos php separados) que contienen el ID de usuario y la contraseña de gmail (en texto sin formato) y la contraseña de la base de datos (de nuevo en texto plano). Aunque ninguna de estas clases se muestra en el navegador (como index.php). Estos archivos contienen solo clases php y ningún código html y las referencias a esas contraseñas de texto plano solo se realizan a través de objetos de esas clases. Ya tarde, comencé a preguntarme si esto es lo suficientemente seguro. Hice mi mejor esfuerzo (actuando como una persona maliciosa) para tratar de leer el contenido de los dos archivos php, pero no pude hacerlo. No estoy muy familiarizado con el desarrollo de código seguro, por lo que no estoy seguro de cuál debería ser mi enfoque para asegurarme de que estas contraseñas nunca se expongan. ¿Podría alguien sugerir las mejores prácticas para desarrollar código php que puede contener información tan confidencial de forma segura.PHP: ¿Cómo ocultar la contraseña para la conexión de la base de datos/declaración de conexión de correo electrónico?

Respuesta

4
  • Ponga elementos configurables en un archivo de configuración independiente, por encima de su directorio web público
  • Asegúrese de que ha establecido permisos de archivo correcto para sus archivos
  • Compruebe la aplicación web para local (y distancia) de incluir los archivos
  • tener su servidor hasta a la fecha de

tener sus contraseñas en un lugar seguro, no es la solución completa, usted necesita tener su aplicación PHP completa segura, y nadie unauthori zed debería poder obtener acceso de administrador/raíz al servidor.

+1

Usted podría también 'información sensible 'unset()' después de haberla usado, solo para evitar que se filtre accidentalmente del 'var_dump()' olvidado. – Matthew

+0

+1, excepto si tiene RFI/LRI y es un archivo PHP, luego se ejecutará nuevamente y no se imprimirá. Por otro lado, se pueden usar privilegios de archivo mysql o un recorrido de directorio más genérico para leerlo. – rook

0

En primer lugar, me gustaría utilizar OAuth for accessing GMail si es posible, significa que no tiene que almacenar credenciales y proporciona cierto nivel de protección en caso de que el servidor se vea comprometido.

También me gustaría ver las respuestas a this question.

Por último, si su sitio está en internet público, vale la pena leer al menos los principios básicos de la seguridad en Internet y especialmente asegurar las aplicaciones web. Hay todo tipo de formas en que las cosas pueden salir mal. Me gustan los libros "hackear expuestos".

0
  1. No guarde las contraseñas en los archivos, porque alguien finalmente controlará ese archivo en el control de código fuente. O alguien establecerá un permiso incorrectamente.

  2. ejecutar la aplicación con su propia cuenta de O/S de usuario

  3. Poner las contraseñas en una variable S O/medio ambiente para el usuario de la aplicación (no una variable de entorno del sistema)

Cuestiones relacionadas