Pasos principales para hacer de XAMPP un entorno "seguro" para producción

Pasos principales para hacer de XAMPP un entorno "seguro" para producción

Para empezar, sé que XAMPP no es ideal para producción. Pero soy un principiante en el uso de Apache, MySQL y lo más importante, soy muy nuevo en PHP. Vengo de una experiencia en Node.js/Java/Javascript, por lo que todo es muy nuevo para mí.

En esta aplicación de prueba en particular que estoy desarrollando usando XAMPP, también estoy usando Windows (lo cual también es muy inusual para mí. Normalmente uso Ubuntu para crear y administrar mis servidores).

Creé esta aplicación a través de una plantilla PHP prefabricada y, por lo tanto, reemplacé todos mis archivos 'htdocs' antes de poder ejecutar los procedimientos de la página de seguridad de XAMPP.

Me gustaría seguir los pasos que seguí para intentar proteger un poco el entorno y le pediré amablemente que me dé más sugerencias o me diga si me falta algo.

  • Eliminé completamente la webdavcarpeta.
  • Cambié la contraseña de root de MySQL.
  • Cambié la contraseña predeterminada de PhpAdmin para la autenticación de cookies.
  • Configuré un .htaccessarchivo en las carpetas que quería proteger. (Siendo nuevo en Apache, esto me resulta un poco confuso. Al principio quería proteger toda la carpeta XAMPP, pero luego nadie pudo acceder a mi aplicación web sin tener que iniciar sesión con los .htpsswdcreds, que no es lo que quería. Solo quería que esto sucediera en carpetas que tienen archivos de usuario confidenciales descargables, por lo que moví el .htaccessarchivo en consecuencia. Aunque no sé si esto es recomendable, ya que veo a muchas personas decir que la primera medida de seguridad que se debe tomar es. De hecho, configuré un .htaccessarchivo en la raíz de la carpeta de XAMPP. Aunque tengo uno, no está protegido por autenticación. Mi preocupación proviene de la falta de comprensión sobre cómo Apache decide qué carpeta es "accesible" o todo eso. un servidor web al que solo se puede acceder a través de rutas que creo explícitamente y que permito al usuario consumir. No estoy realmente seguro de cómo PHP y Apache trabajan juntos para definir estos permisos).
  • NO estoy usando FileZilla (ni lo ejecuto hasta donde yo sé).
  • NO estoy usando Mercury (ni lo estoy ejecutando hasta donde yo sé).
  • NO estoy usando Tomcat (ni lo ejecuto hasta donde yo sé).

Ahora, a la parte más preocupante para mí PhpAdmin. Al principio tuve acceso a él a través de localhost, pero lo perdí una vez que configuré mis servidores VirtualHost apuntando a mi dominio y SSL. La forma en que "arreglé" eso fue recreando otro VirtualHost escuchando en el puerto 80 apuntando también a localhost. Aunque intenté acceder PhpAdminde forma remota a través del dominio y la IP y no tuve éxito, todavía me preocupa que pueda ser vulnerable de alguna manera a través de la red. Esta es mi VirtualHostconfiguración enhttpd-ssl.conf

<VirtualHost *:80>
   ServerName localhost
   DocumentRoot "C:/xampp/apache/logs/error.log"
</VirtualHost>

##
## SSL Virtual Host Context
##
<VirtualHost *:80>
   ServerName http://example.com
   DocumentRoot "C:/xampp/apache/logs/error.log"
   Redirect / https://example.com/login
</VirtualHost>

<VirtualHost _default_:443>

#   General setup for the virtual host
DocumentRoot "C:/xampp/htdocs"
ServerName example
ServerAdmin [email protected]
ErrorLog "C:/xampp/apache/logs/error.log"
TransferLog "C:/xampp/apache/logs/access.log"

Por lo poco que entiendo sobre lo que estoy haciendo, aunque se puede acceder al demonio MySQL a través de la red, los intrusos tendrían que usar fuerza bruta para obtener la contraseña. Mis archivos descargables confidenciales están protegidos mediante .htaccesscredenciales. Creoque mi PhpAdmin también está protegido pero de este no estoy realmente seguro. Agradecería cualquier aportación.

información relacionada