inhabilitar la ejecucion de scripts ubicados en determinadas carpetas

50 views
Skip to first unread message

Mariano Gomez

unread,
Oct 26, 2012, 8:56:00 AM10/26/12
to php...@googlegroups.com
Buenas gente, resulta que estoy integrando un gestor de archivos (elFinder) a la web de un cliente. La idea es que pueda subir imagenes para vincularlas con productos, viendo la configuracion, veo que puedo setearla de tal forma que solamente permita a los usuarios subir imagenes.
Peeeeeeeeeero (y aca viene la cuestion), para ver que tan seguro era, probe de subir un archivo xxx.php renombrado como xxx.jpg, y luego lo renombre en el servidor... Y SE PUEDE EJECUTAR!!! chan!
Me puse a modificar el codigo para evitar que se le pueda cambiar la extension a los archivos, pero me quedo el miedo a dejar la puerta abierta para algun otro mecanismo que yo desconozca.
Tengo idea de que casi todos los frameworks te "obligan" a poner todo el contenido estatico en una carpeta aparte de la que tiene todo el codigo, asique imagino que dicha carpeta tiene configurados permisos diferentes, pero no se como los manejan, si desde un .htaccess, modificando los permisos de la carpeta, etc

Alguien me puede tirar algun tip sobre que puedo hacer para evitar que se puedan ejecutar scripts de una determinada carpeta? (aunque su extension no sea .php ni .phpx)

Jonathan Muszkat

unread,
Oct 26, 2012, 8:59:54 AM10/26/12
to php...@googlegroups.com
Sacalos del webroot.
Es decir si tu servidor web apunta a /a/b/c/webroot o /a/b/c/htdocs
pone esos archivos en /a/b/c/images y listo desde el navegador nunca se va a poder acceder directamente a esos archivos.

Abrazo.

2012/10/26 Mariano Gomez <marian...@gmail.com>

Alguien me puede tirar algun tip sobre que puedo hacer para evitar que se puedan ejecutar scripts de una determinada carpeta? (aunque su extension no sea .php ni .phpx)



--
Jonathan Ariel Muszkat
Gtalk: mus...@gmail.com
Celular: (011)15-4-399-6363
Linkedin: http://www.linkedin.com/in/musky
Twitter: @jonymusky
Blog: http://www.jonymusky.com.ar

Skype: jony.musky

The only way to do great work is to love what you do. If you haven’t found it yet, keep looking. -- Steve Jobs

Mariano Gomez

unread,
Oct 26, 2012, 9:02:52 AM10/26/12
to php...@googlegroups.com
y ahi como deberia hacer para acceder a esas imagenes? (es decir, cuando las quiera mostrar en el front, seria <img src="???"/>


--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+u...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/php-arg?hl=es.

Camello Ar

unread,
Oct 26, 2012, 9:31:03 AM10/26/12
to php...@googlegroups.com
Mediante un script que las interprete digamos

/mostrarimagenes.php?f=imagen1.jpg o /mostrarimagenes.php?id=12345676789

Ahora no estoy en mi máquina como para mostrarte un ejemplo de un script que lee una imagen por "parámetros" (es decir no se accede mediante nombre sino que lo forma de acuerdo a los parametros o lo busque en una DB mediante ID, hace una cabecera mime adecuada y lo presenta directo al navegador (con un readfile() por ejemplo). Si haces lectura directa mediante nombre (primer ejemplo) tenes que controlar el scope de lectura del script (para evitar un llamado f=/etc/password por ejemplo o mismo ../../sql.php o lo que sea)

Jonathan Muszkat

unread,
Oct 26, 2012, 10:05:05 AM10/26/12
to php...@googlegroups.com
Si, sino podes hacer un rewrite que todo lo que vaya a sitio.com/imagenes/imagen.jpg te lo pase a getimage.php?dato=imagen.jpg y ahi la mostras.

2012/10/26 Camello Ar <camel...@gmail.com>

DEH

unread,
Oct 26, 2012, 10:08:23 AM10/26/12
to php...@googlegroups.com

#en .htaccess

<files *.php>
deny from all
</files>

#####################
Claro que nada impide que desde otro directorio se haga un include al php que no queres que se ejecute.

Firma: yo

Camello Ar

unread,
Oct 26, 2012, 10:15:41 AM10/26/12
to php...@googlegroups.com
y todas las formas de PHP, JS, etc posibles como .php3, .phtml, o mejor aun, restringir solo jpg, gif, png, y a algun otro formato de imagen


--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para ver este debate en la Web, visita https://groups.google.com/d/msg/php-arg/-/PrzDhh2nRXEJ.

Adrian Ramiro

unread,
Oct 26, 2012, 10:15:41 AM10/26/12
to php...@googlegroups.com
También, al subir el archivo podés comprobar que realmente sea una imagen, sin importar la extensión, con, por ejemplo, getimagesize(), y no guardar el archivo subido.

2012/10/26 DEH <deh...@gmail.com>

--
Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP Argentina" de Grupos de Google.
Para ver este debate en la Web, visita https://groups.google.com/d/msg/php-arg/-/PrzDhh2nRXEJ.

Para publicar una entrada en este grupo, envía un correo electrónico a php...@googlegroups.com.
Para anular tu suscripción a este grupo, envía un correo electrónico a php-arg+u...@googlegroups.com
Para tener acceso a más opciones, visita el grupo en http://groups.google.com/group/php-arg?hl=es.



--
/**
* @author: Adrian R. Gay Cattaneo
*/

Ricardo Luis Mender

unread,
Oct 26, 2012, 11:31:40 AM10/26/12
to php...@googlegroups.com
La forma que da Adrian Ramiro es la que conocia.
Ricardo Luis Mender

Tordek

unread,
Oct 26, 2012, 3:25:16 PM10/26/12
to php...@googlegroups.com
On 26/10/12 09:56, Mariano Gomez wrote:
> Alguien me puede tirar algun tip sobre que puedo hacer para evitar
> que se puedan ejecutar scripts de una determinada carpeta? (aunque
> su extension no sea .php ni .phpx)

En tu .htaccess

<FilesMatch ".*">
SetHandler none
</FilesMatch>

As� no te ten�s que preocupar por php ni nada similar: deshabilita
todo procesamiento que ocurra sobre PHP ni cualquier otro mod que
vayas a habilitar.

http://community.webfaction.com/questions/9920/disable-script-execution-in-a-subdirectory

>
> --
> Has recibido este mensaje porque est�s suscrito al grupo "Grupo PHP
> Argentina" de Grupos de Google.
> Para publicar una entrada en este grupo, env�a un correo electr�nico
> a php...@googlegroups.com.
> Para anular tu suscripci�n a este grupo, env�a un correo electr�nico
> a php-arg+u...@googlegroups.com
> Para tener acceso a m�s opciones, visita el grupo en
> http://groups.google.com/group/php-arg?hl=es.


--
Guillermo O. �Tordek� Freschi. Programador, Escritor, Genio Maligno.
http://tordek.com.ar :: http://twitter.com/tordek

Federico

unread,
Oct 26, 2012, 3:50:18 PM10/26/12
to php...@googlegroups.com
Pero con eso no te muestra el contenido del script en texto plano?

2012/10/26 Tordek <ked...@gmail.com>:
> On 26/10/12 09:56, Mariano Gomez wrote:
>>
>> Alguien me puede tirar algun tip sobre que puedo hacer para evitar
>> que se puedan ejecutar scripts de una determinada carpeta? (aunque
>> su extension no sea .php ni .phpx)
>
>
> En tu .htaccess
>
> <FilesMatch ".*">
> SetHandler none
> </FilesMatch>
>
> Así no te tenés que preocupar por php ni nada similar: deshabilita todo
> procesamiento que ocurra sobre PHP ni cualquier otro mod que vayas a
> habilitar.
>
> http://community.webfaction.com/questions/9920/disable-script-execution-in-a-subdirectory
>
>
>>
>> --
>> Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP
>> Argentina" de Grupos de Google.
>> Para publicar una entrada en este grupo, envía un correo electrónico
>> a php...@googlegroups.com.
>> Para anular tu suscripción a este grupo, envía un correo electrónico
>> a php-arg+u...@googlegroups.com
>> Para tener acceso a más opciones, visita el grupo en
>> http://groups.google.com/group/php-arg?hl=es.
>
>
>
> --
> Guillermo O. «Tordek» Freschi. Programador, Escritor, Genio Maligno.
> http://tordek.com.ar :: http://twitter.com/tordek
>
>
> --
> Has recibido este mensaje porque estás suscrito al grupo "Grupo PHP
> Argentina" de Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> php...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a
> php-arg+u...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en
> http://groups.google.com/group/php-arg?hl=es.
>

Federico

unread,
Oct 26, 2012, 3:51:13 PM10/26/12
to php...@googlegroups.com
Perdon, no lei todo el thread :P

2012/10/26 Federico <fede...@gmail.com>:

Mariano Gomez

unread,
Oct 26, 2012, 10:53:53 PM10/26/12
to php...@googlegroups.com
gracias gente por los mensajes, voy a intentar con lo que recomienda Tordek. La del getimagesize() la conocia, pero como con el tema de codigo me pongo medio paranoico, me agarro la duda de si no se puede modificar un archivo de forma tal que devuelva los atributos que devuelve dicha funcion, y no obstante sea un archivo de texto.
Saludos!
Reply all
Reply to author
Forward
0 new messages