Me gusta ver la capa de aplicación web del lado del servidor lo más independiente posible, desde el sistema operativo, desde el software del servidor como (Apache, nginx, IIS, etc.). Para poder agarrar fácilmente la aplicación y desplegarla en un sistema más nuevo. Eso tiene ventajas y riesgos.
En el ejemplo usaré una configuración con Apache y PHP. Cuando el nuevo sistema operativo subyacente o el software del servidor no está configurado correctamente (ese es otro problema), el lenguaje de programación, por ejemplo, PHP no puede interpretarse como un código sino como un texto. Por lo tanto, si todo el código fuente está en una carpeta pública (y se conoce la estructura de la carpeta de archivos), el código fuente se filtra. Varias soluciones vienen a la mente:
- mueva todos (excepto uno) los archivos PHP fuera de la carpeta pública para que, de suceder, solo se filtre un archivo (con solo incluye) y no todo el código fuente;
- detecta si el sistema subyacente, como Apache, es compatible con PHP, por ejemplo, en
.htaccess
(ya que se incluye con la aplicación) y deniega el acceso a todo cuando PHP no es compatible / habilitado. Una vez hice una pregunta sobre eso aquí: enlace .
Tales métodos son fáciles de usar y mejoran el concepto de seguridad en capas. Dado que si la capa subyacente falla, la aplicación todavía puede retroceder en su propio estado de negación. Previniendo en este caso la fuga de código fuente.
Me gusta saber si existen otros métodos para evitar fugas en el código fuente. Por ejemplo, en un servidor de seguridad o proxy de aplicación web que detecta patrones de código fuente o diferentes enfoques de configuración práctica.