2011-10-15 8 views
5

Generalmente se considera que los lenguajes como Perl, Pythong, etc. tienen una mayor seguridad en comparación con PHP. Además de posibles agujeros de seguridad, una razón puede ser (no sé, le pregunto) que no ponemos los archivos ejecutables de Perl y Python dentro de una carpeta pública. Como los archivos PHP no son ejecutables, es seguro mantenerlos dentro de la carpeta pública.¿Mejor seguridad de PHP al mantener archivos de inclusión fuera de la carpeta pública?

Es un enfoque prudente y práctico para mantener los archivos php fuera de la carpeta pública para restringir el acceso de posibles atacantes? Si es así, ¿es común? porque no veo ninguna desventaja (excepto un manejo un poco más difícil de propagación de archivos en diferentes lugares); pero si es beneficioso para mejorar la seguridad, vale la pena considerarlo. Como no sé cómo los hackers agregan un sitio web basado en php, no tengo idea de cómo puede mejorar la seguridad.

+0

preguntas relacionadas: [Ayuda proteger archivos de acceso con .htaccess y php?] (http://stackoverflow.com/questions/2573496/help-securing-files-access-with-htaccess-and-php), [PHP file security on webserver] (http://stackoverflow.com/questions/6524565/ php-file-security-on-webserver), [Asegurar archivos PHP] (http://stackoverflow.com/questions/1401727/securing-php-files) y [los muchos relacionados] (http://stackoverflow.com/ búsqueda? q = [php] + archivos + webroot + seguridad). – hakre

+0

Gracias hakre, también busco el tema; hay preguntas relacionadas, pero no se enfoca en la idea. – Googlebot

Respuesta

9

¿Es un enfoque inteligente y práctico mantener los archivos php fuera de la carpeta pública para restringir el acceso de los atacantes?

Sí.

En caso afirmativo, ¿es común?

Sí.

pero si es beneficioso para mejorar la seguridad,

Su aplicación PHP normalmente consistirá en muchos archivos individuales. Por lo general, estos se incluirán en otros archivos. Por ejemplo, es posible que tenga:

index.php 
lib/db.php 
lib/auth.php 

En este ejemplo, ya que todos los archivos están en la raíz del documento, un usuario externo podría golpear la url http://domain.com/lib/auth.php y de ejecución que incluyen archivo directamente, independiente del sistema de autenticación que se supone estar comprando. ¿Hará algo malo cuando se corra solo? Probablemente no. Pero para estar seguro, debe mover los archivos de inclusión fuera de la raíz del documento, lo que imposibilita que el servidor web los sirva directamente.

(Tenga en cuenta que esta vulnerabilidad no es exclusivo de PHP, y manteniendo así sus bibliotecas fuera de la raíz del documento es una buena práctica, independientemente de la plataforma.)

Cuestiones relacionadas