Trabajo para una empresa de atención médica que hace hincapié en la seguridad, debido a la sensibilidad de los datos con los que trabajamos. Recientemente, hemos estado realizando muchas auditorías (internas y externas) de nuestra "pila" actual para garantizar que cumplimos con los diversos requisitos del cliente.
Un tema de discusión reciente es alrededor de las variables de entorno. Usamos la gema dotenv, por lo que almacenamos muchas de estas variables en un archivo .env (ignorado en git) en el servidor web. Estas variables incluyen las credenciales de nuestra base de datos, las credenciales SMTP y varias claves de API.
Cuando ciertos líderes se enteraron de que dichas credenciales se almacenaban en el servidor web en texto sin formato, expresaban preocupación. Esa preocupación ha provocado una discusión sobre el cifrado de esas variables. Veo los méritos del cifrado y sin duda sería valioso para proteger nuestras claves API y similares. Sin embargo, cuestiono el valor que ofrece para proteger los datos almacenados en nuestro servidor de bases de datos (que en última instancia es la mayor preocupación) ... de lo que estamos hablando es de un usuario malintencionado que obtiene acceso a nuestro servidor web. A menos que me falte algo, ese usuario todavía podría abrir una consola de rieles, que cargará la aplicación, manejará el descifrado de las credenciales y le permitirá consultar la base de datos utilizando nuestros modelos (por ejemplo, Patient.all). Me parece que si nuestro servidor web se ve comprometido, estamos controlados independientemente de si ciframos esas variables. Tengo razón en eso?
Suponiendo que lo soy, ¿cómo respondo a esta inquisición con algo más concreto que "bueno, así es como funciona Rails" (con respecto a la posibilidad de abrir una conexión al DB a través de los rieles c)?