Después de una auditoría, me encargaron eliminar archivos superfluos del directorio de proveedores de Twig 1.x en uno de nuestros sitios. Planeando eliminar /twig/twig/doc, /twig/twig/test y ver si algo se rompe.
¿Qué pasa con /twig/twig/ext/twig/run-tests.php, o todo el directorio "ext"?
¿Alguien tiene experiencia previa en eliminar una instalación predeterminada de Twig 1.x para entornos de producción? Cualquier ayuda o consejo es bienvenido.
La acción correcta sería actualizar el diseño de su sitio para que estos archivos estén fuera de la raíz de documentos de su servidor web, entonces no tiene que preocuparse por qué eliminar y qué dejar. Probablemente tenga algo como esto, donde la raíz del documento de su servidor web apunta directamente a /path/to/project :
/path/to/project /lib foo.php bar.php /twig /twig /doc /test index.php Esto significa que cualquiera puede solicitar directamente http://yourdomain.com/twig/twig/test/some_file.php
Lo que quieres es más como esto:
/path/to/project /public index.php /lib foo.php bar.php /twig /twig /doc /test Luego configure su servidor web para que la raíz del documento sea /path/to/project/public . Entonces, el código de su aplicación aún puede include() cosas en /twig y /lib , pero su servidor web no las atenderá directamente.
Si está eliminando archivos del directorio del proveedor, volverán la próxima vez que realice una instalación del compositor, por lo que parece un poco inútil.
Los archivos que menciona (docs y test) no causan más daño que ocupar espacio, ya que no se llaman directamente, pero eso es solo una desventaja para cualquier sistema de administración de paquetes. Como dijo @Alex, mientras no sean de acceso público, no hay necesidad de preocuparse.
Si realmente desea Twig sin los archivos adicionales, puede bifurcar el proyecto, moverlo a su propio repositorio de Git y luego hacer referencia a eso en su composer.json en lugar del oficial, pero se perderá las actualizaciones de Twig.
Estamos ejecutando Apache, por lo que la solución más fácil fue simplemente agregar un archivo .htaccess al directorio de proveedores principales:
# Prevent non-local access to the vendor directory. Order deny,allow Deny from allEstructura de directorios:
/root /vendor .htaccess /twig ... /includes ...Ahora los scripts de PHP siguen teniendo acceso, pero los intentos externos de ver algo dentro del directorio del proveedor devuelven un error 403.