[Ayuda] Seguridad en Apache
Sandino Araico Sánchez
sandino en sandino.net
Mar Feb 1 05:06:58 CST 2005
Marcos R Garcia wrote:
>Hola, buen dia Sandino!
>Veo que comentaste en una de tus respuestas sobre seguridad en el
>Servidor Apache, pues bien, me permito preguntarte donde puedo leer o
>conseguir una relación de opciones para hacer segura "una pagina" Web
>hecha en PHP (realmente son varios programas).
>
No hay mucha información al respecto, pero una buena fuente son los
omentarios del php.ini.
> En particular deseo:
>a) denegar el acceso a los fuentes de PHP para que no vean el código
>(esta en un subdirectorio)
>
>
Si tienes acceso a un subdirectorio que esté fuera del DocumentRoot y al
mismo tiempo se encuentre en tu include_path te conviene mover todo lo
que puedas a ese directorio; de otra manera tendrás que limitar el
acceso con archivos .htaccess.
>b) evitar que naveguen en otros subdirectorios de mi sitio donde guardo
>documentos con informacion confidencial.
>
>
La información confidencial no debe vivir en los subdirectorios públicos
de tu sitio aunque la podrías tener encriptada y trepar la llave a
memoria compartida para que tu aplicación la pueda desencriptar; con la
desventaja de que cada vez que reinicie el Apache tendrás que volver a
trepar la llave a memoria compartida.
>El sitio es un area asignada por un proveedor de internet, al cual tengo
>acceso via FTP.
>
>
¿Tienes acceso sólamente al directorio donde tienes tu DocumentRoot o
tienes acceso a más directorios que se encuentren al mismo nivel que tu
DocumentRoot?
Dependiendo de las políticas de tu proveedor si tienes acceso a
directorios fuera de tu DocumentRoot puedes agregar a tu .htaccess una
línea php_value include_path con la ruta relativa hacia ese directorio
../otro_directorio y ahí meter tus librerías. Algo parecido puedes
hacer con tus documentos confidenciales, moverlos a un directorio fuera
de tu DocumentRoot y abrirlos con
$archivo=fopen("../confidencial/archivo", "r");
Desde luego que si tu proveedor sólamente te da acceso al directorio
donde se encuentra tu DocumentRoot pues la única alternativa que te
queda es la de los archivos .htaccess.
>Hasta ahora he conseguido algunos tips viendo otros sitios: colocar un
>index.html en cada subdirectorio, usar robot.txt y hacer uso del
>archivo .htaccess
>
>
Para que no vean el cófigo fuente de tus librerías cámbiales la
extensión de .inc a .inc.php. Desde luego que tendrás que actualizar
todas las sentencias include y require donde cargues esas librerías.
Tus librerías no deberían mandar ningún output y deberían verificar que
si $_SERVER["SCRIPT_NAME"] es igual a su propio nombre mejor terminar la
ejecución con exit 0; porque es alguien que está tratando de leer su
contenido o de forzarlas por medio de variables GET, POST y COOKIE a
ejecutarse con un comportamiento arbitrario.
>La pregunta especifica es, son estos los unicos elementos con que cuento
>para hacer mi sitio seguro?
>
Puedes pedirle a tu proveedor que instale mod_security y configurar las
reglas desde tu .htaccess
Y desde luego, debes auditar todas tus aplicaciones de web línea por
línea, validando todos los parámetros que recibes de fuera para prevenir
ataques de SQL injection, code injection y cross site scripting.
Si puedes apaga el reporte de errores, de esa manera los atacantes que
buscan provocar errores en tu aplicación para obtener más pistas del
funcionamiento interno de tu aplicación se quedarían sin nada....
>existe algun otro ? donde localizo ejemplos
>de .htaccess especificos
>
La sintaxis es exactamente la misma que la de tu httpd.conf.
en google podrás encontrar ejemplos.
http://www.google.com.mx/search?q=.htaccess
>(en apache.org no se me hace claro o didactico,
>ya que esta dispersa la informacion)?
>
>Gracias de antemano
>
>
--
Sandino Araico Sánchez
-- ... there's no spoon ...
_______________________________________________
Ayuda mailing list
Ayuda en linux.org.mx
Para salir de la lista: http://mail.linux.org.mx/cgi-bin/mailman/listinfo/ayuda/
Más información sobre la lista de distribución Ayuda