Access Forbidden segun el encoding

29 views
Skip to first unread message

BARBAZUL

unread,
Nov 2, 2012, 11:21:09 AM11/2/12
to php...@googlegroups.com
Queria comentarlo porque es la primera vez que me pasa.

Estoy a las trompadas con un server en RHEL 6.1 pretendiendo configurar un LAMP comun y corriente.

Pase la ultima hora tratando de hacer andar un script en php que me tiraba "access forbidden 403" sin ningun exito hasta que de pronto se me ocurrio convertir el archivo a UTF-8 y magicamente comenzo a funcionar.

Pregunta: Alguien sabe por que Apache me podría estar denegando el acceso basado unicamente en el encoding del archivo?

Nota: no tengo idea del formato original, pero puedo decir que ocupaba 5 bytes menos

--
Matías Montes

http://about.me/barbazul

Camello Ar

unread,
Nov 2, 2012, 11:26:55 AM11/2/12
to php...@googlegroups.com
Creo que puede ser por alguna configuración de apache (que al leer el archivo en otra codificación interpreta al mismo diferente), o que al recodificarlo le hayas cambiado los permisos. Quizás tenía permisos que no permitían lectura/ejecución por parte del grupo/usuario de apache


--
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.

Adrian Ramiro

unread,
Nov 2, 2012, 11:34:22 AM11/2/12
to php...@googlegroups.com
Pudo pasar que Apache no fue capaz de leer el archivo y al no tener un documento por defecto para mostrar (index.php index.html etc) devolvió un 403


2012/11/2 BARBAZUL <tere...@gmail.com>

--
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.



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

DEH

unread,
Nov 2, 2012, 11:40:43 AM11/2/12
to php...@googlegroups.com
Hola,

¿Seguro que solo cambiaste el encoding?

A mi me pasó muchas veces con CentOS (RedHat clon), que me da errores que son por motivos de seguridad.
Con el tema de permisos de archivo y con SELinux hay que hacer todo como lo propone Red Hat o atenerse a las consecuencias.
Asegurarse que los scripts esten en la carpeta /var/www/html con permisos de lectura para apache. El boolseset de
httpd_can_network_connect_db en on.
Si tenes una maquina para pruebas, probá deshabilitar el selinux. Con eso descartas que sea un problema de las reglas de SELinux.

Firma: yo

Camello Ar

unread,
Nov 2, 2012, 11:43:28 AM11/2/12
to php...@googlegroups.com
Creería que el 403 no requiere que haya un documento por default, dado que salta con el error de lectura, sin ir al index.*

BARBAZUL

unread,
Nov 2, 2012, 1:06:12 PM11/2/12
to php...@googlegroups.com
En el directorio habia:
  • index.html
  • test.php
  • lala.txt
  • magento-check.php
Todos los archivos pertenecian a root:root con permisos 644
test.php solo contenia un die("test");
Los primeros 3 archivos los leia bien
si abria / mostraba el index.html
si abria /magento-check.php mostraba el error 403 default de apache
En /var/log/httpd/error_log solo me agregaba un error generico de denied access to /magento-check.php (o similar)

Luego de correr (siendo root)

iconv -t UTF-8 magento-check.php > temp.php
mv temp.php magento-check.php
chmod 644 magento-check.php

Desaparecio el error.

No encontre nada en la doc de apache que indique que lo que me pasaba dependiera de un parametro. Lo más cercano que encontré fue la cabecera accept-encoding pero me parece que no aplica poruqe no cambie el request...



DEH

unread,
Nov 3, 2012, 12:40:43 PM11/3/12
to php...@googlegroups.com
Es raro.
¿probaste siempre con la misma url y en la misma máquina?

Dependiendo de tu conf de apache no es lo mismo:

http://localhost/magento-check.php
http://127.0.0.1/magento-check.php
http://hostname/magento-check.php

Firma: yo

BARBAZUL

unread,
Nov 3, 2012, 1:19:10 PM11/3/12
to php...@googlegroups.com
Las pruebas las hice exclusivamente accediendo desde afuera, cree un Virtualhost y le pegaba solamente por nombre de dominio http://www.saraza.com.ar/magento-check.php

Siempre desde la misma maquina, desde el mismo browser.

El script en cuestión es este: http://www.magentocommerce.com/_media/magento-check.zip que como verán no hace grandes maravillas (checkea que estén cargadas un par de extensiones de php nomás)



--
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/-/IAcsAnv2VPgJ.

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.

DEH

unread,
Nov 3, 2012, 3:18:49 PM11/3/12
to php...@googlegroups.com
Lo que veo es que usas el tag <? y usas la funcion shell_exec. Ambas cosas venian deshabilitadas en CentOS5. No se Con RedHat6.1
¿Te fijaste si al convertir el archivo cambiaba de <? a <?php ?
Saludos

Firma: yo

BARBAZUL

unread,
Nov 4, 2012, 8:32:34 AM11/4/12
to php...@googlegroups.com
Lo unico que cambie del script (por gusto personal y para probar  si era por eso que fallaba) fue cambiar de <? a <?php y sacar el ?> del final.

Sin embargo, estos cambios los hice antes de convertir el archivo, mientras todavía fallaba y no tuvieron efecto. Luego de convertirlo no lo volvi a tocar.

Ademas, el error era claramente un 403 de apache no un fatal de PHP :s




Firma: yo

--
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/-/rNqMYq6BwiUJ.

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,
Nov 4, 2012, 8:58:16 AM11/4/12
to php...@googlegroups.com

Yo opino que no tenia 644 (aunque creyeras que si), y recien adoptó los permisos con el chmod

Diego Sueiro

unread,
Nov 4, 2012, 9:34:05 AM11/4/12
to php...@googlegroups.com
2012/11/4 Camello Ar <camel...@gmail.com>

Yo opino que no tenia 644 (aunque creyeras que si), y recien adoptó los permisos con el chmod


Probaste hace una copia del script, convertirlo a latin-1, verificar los permisos y ver si el nuevo script te da 403 también? Sólo por curiosidad... y para testear varias de las hipótesis  que se barajaron, incluso la que originó el thread, que es que el problema fue el encoding.

Diego 

BARBAZUL

unread,
Nov 4, 2012, 8:54:00 PM11/4/12
to php...@googlegroups.com

Mañana en la oficina me tomo 10 minutos para armar un caso de prueba. Presiento que no me creen :-(

--

BARBAZUL

unread,
Nov 5, 2012, 10:03:15 AM11/5/12
to php...@googlegroups.com
Los odio! ahora no lo puedo reproducir. Pero en mi defensa, le acabo de mostrar el .bash_history y el access_log a Diego Sueiro (trabajamos juntos) y el da fe (bajo amenaza de muerte) de que todo lo que yo he dicho es cierto

Cerrado el tema.
Archivese

Maximiliano Churichi

unread,
Nov 5, 2012, 10:11:11 AM11/5/12
to php...@googlegroups.com
Tipico heisenbug!

Maximiliano Churichi
<mchu...@gmail.com>

Camello Ar

unread,
Nov 5, 2012, 10:27:28 AM11/5/12
to php...@googlegroups.com
Sigo sosteniendo que ese archivo no tenía 644 antes del iconv/move/chmod

Se archiva
Reply all
Reply to author
Forward
0 new messages