Es muy probable que cualquier usuario legítimo de esa máquina pueda escribir .php
archivos, o cualquier otra cosa que deseen, en ese directorio completamente abierto. Un directorio 777
casi no tiene lugar en un host compartido. (/tmp
puede ser a veces 1777
, para establecer el bit pegajoso en el directorio -. Que permite que sólo un archivo propietario para borrar un archivo en el directorio Normalmente, 777
significa que cualquiera puede borrar cualquier archivo desde el directorio Pero /tmp
tiene definitivamente. caído en desgracia en entornos de alojamiento compartido porque es inherentemente inseguro.)
Entonces: ¿Es usted el único usuario en la máquina? ¿O esta máquina se comparte con alguien más? ¿Esta máquina ejecuta otros servicios además del servidor web? Si es así, esos otros servicios también podrían representar un posible vector de ataque.
Además, si sus permisos están establecidos en 777
en su directorio, me pregunto cuán seguros son los archivos PHP que está ejecutando: he visto muchos casos de personas ejecutando scripts PHP inseguros que permiten a un atacante modificar cada Archivo HTML en todo el servidor web, para infectar a las personas que navegan por el sitio. (Sí. Muchos. Más que un puñado por mucho)
Es por eso que cualquiera de las cuentas de usuario que ejecuta su servidor web no debe poseer ninguno de los archivos del sitio, tanto páginas estáticas como dinámicas. El servidor web solo debe tener suficientes privilegios de escritura para escribir sus access.log
, error.log
y hablar con un servidor de base de datos. Cualquier additional privileges beyond this hace que sea muy fácil para un error benigno en uno de sus scripts convertirse en una vulnerabilidad explotable que permite que su sitio sea utilizado para atacar a otros.
777
es una mala idea. Arregla eso. Asegúrese de que su servidor web no tenga permiso de escritura para el contenido web. Asegúrese de que ningún otro servicio en el servidor tenga permiso de escritura para su contenido web. Asegúrese de que ningún otro usuario en el servidor tenga permiso de escritura para su contenido web.
actualización
Esto es más fácil de lo que parece. Cree un nuevo usuario webcontent
. Si su servidor web ya tiene un grupo propio, vamos a usarlo y llamarlo webgroup
. Si aún no lo hace, cree un nuevo webgroup
también. (adduser(8)
y addgroup(8)
si su VPS no tiene su propio mecanismo.) A continuación, establecer el dueño de todo su contenido web:
chown -R webcontent:webgroup /path/to/web/content
permisos fijos:
find /path/to/web/content -type d -print0 | xargs -0 chmod 750
find /path/to/web/content -type f -print0 | xargs -0 chmod 640
continuación, asegúrese de que su servidor web es utilizando la directiva Group webgroup
para asegurarse de que aún pueda leer todos los archivos que necesita.
Esto le permitirá a su servidor web tener leer acceder a todos sus scripts y configuración, pero si el servidor web en sí está hackeado, no puede modificar nada de eso.
¿qué se edita Aurelio? –
[Las etiquetas] (http://stackoverflow.com/posts/8115159/revisions) – SLaks
Ahaaa, no sabía nada de que THX "herramienta de revisión"! :) –