OVH Community, your new community space.

php register_globals en Release2


Power
23/09/2008, 11:00
Hola Alejandro,

Te recomiendo que leas esto:
http://www.php-hispano.net/articulos...-en-php-1.html

Saludos

alejandro
23/09/2008, 10:15
Hola,

Soy nuevo por aquí.

El problema es que he instalado joomlaen un 60gp y me tira este mensaje:

"Los siguientes ajustes de su servidor PHP no son óptimos para la seguridad y se recomienda cambiarlos:

* El parámetro PHP register_globals esta `ACTIVADO` se recomienda `APAGADO` "

Y por mucho que he leido no he conseguido desactivarlo. PD: no tengo en mi hosting ningun php.ini

Alguien me puede ayudar?

Muchas gracias de antemano.

Saludos

Jorgens
20/09/2008, 16:30
Saludos colegas.

Acabo de llegar. Os he encontrado buscando cómo activar esta misma variable en mi servidor e intentaré probar lo que comentais (imagino que buscando el php.ini, copiandolo, pegandolo en la subcarpeta del dominio en el que quiero el cambio y retocando allí esa parte).

Mi duda es, pues soy novato en esto, Qué riesgos de seguridad tengo al poner esa variable Global en on?

Muchas gracias!

nono
02/06/2008, 21:46
php.ini en Release 2 esta en:

/usr/local/lib/php4/php.ini

/usr/local/lib/php5/php.ini

Probe los metodos que proponeis, están genial para configuraciones personalizadas.

wancho
29/05/2008, 17:45
Hola,

Bueno al final lo he podido solucionar, el tema era mas fácil de lo que parecía (una vez lo sabes claro). Pongo la solución para la posteridad ya que yo me he vuelto loco durante dos días.

El tema es crear un php.ini con la configuración deseada para el dominio.
Lo metes en un directorio donde quieras, en mi caso lo he puesto en:

/usr/local/lib/midirectoriophp

Luego en la raiz del dominio, crear o añadir esta línea al htaccess:

SetEnv PHPRC /directorio/donde/esta/el/php.ini/que/queremos/utilizar

en mi caso seria:

SetEnv PHPRC /usr/local/lib/midirectoriophp

OJO --> si pusierais esto: SetEnv PHPRC /usr/local/lib/midirectoriophp/php.ini

no funcionaria, no es la ruta al archivo, es la ruta al directorio

Espero que le sirva a alguien. Gracias por la ayuda prestada.

Hoy me he ganado una birra.

Un saludo.

wancho
29/05/2008, 09:08
Buenas,

He probado lo que comentas Marcos, me ha parecido muy interesante lo del php.ini en el root del vhost con la linea de register globals y me ha funcionado, pero tiene algunos inconvenientes:

El primero es que no mantiene algunos parámetros del php.ini por defecto, con lo que lo ideal seria poner un php.ini completo.

El segundo y es el que me ha tirado para atrás en esta solución es que no se propaga para los subdirectorios

El tema del php_flag o php_value, da igual donde o como lo ponga, no reconoce esas variables por el tema comentado que no esta cargado como módulo de apache.

Acabo de probar las variables SetEnv pero tampoco he obtenido resultados.

Me falta probar el tema de los php.ini, así que cuando tenga un rato, lo pruebo y posteo los resultados.

Muchas gracias por la ayuda!

icenrg
28/05/2008, 21:06
Cita Publicado inicialmente por wancho
He encontrado una posible solución que seria cambiando el php.ini, segun el directorio en el que estés. Parece una buena idea y muy potente, ya que de esta manera podemos cambiar cualquier parámetro conocido.
Hola,
Yo he probado ese método (en otro servidor, no con la release de OVH, pero imagino que sera igual de efectivo) y efectivamente es muy potente. Cada dominio puede tener su propias directivas en php con lo cual puedes ganar en seguridad.

MarcosBL
28/05/2008, 19:28
Habia oido hablar del sistema si, tambien de otro "medio raro" que consiste en meter un php.ini en la root del vhost, y dentro, un simple

register_globals = Off
eso lo has probado ya ?

------------------------------------------------------

Y tambien la combinación, en el .htaccess (no en httpd.conf) ?

php_value register_globals 1
------------------------------------------------------

Otra posibilidad, que me acabo de fijar en un error mio, en el ejemplo que te puse, donde pone

php_flag register_globals on
pretendia poner, como en los otros 3 casos:

php_value register_globals 1
Prueba con ese pequeño cambio también.

------------------------------------------------------

Y lo último que se me ocurre, aprovechando Setenv, me en el .htaccess a secas, esto:

SetEnv REGISTER_GLOBALS 1
SetEnv PHP_VER 5
Y a probar de nuevo y nos dices.

wancho
28/05/2008, 19:08
Gracias por tu respuesta Marcos,

He probado lo que me comentas, pero no me funciona, me da un error 500 producido por la linea del php_flag, las otras lineas no me dan error porque no entran dentro de los if, ya que para el apache el php no esta cargado como módulo, así que ignora las lineas.

Por otro lado también comprobé que estuviera activo el AllowOverride.

Como me ha parecido raro, he estado indagando un poco más a fondo sobre el tema ya que me parece ilógico no poder cambiar una variable del php....

Al final he podido dar con una posible solución.

Parece ser que cuando php no actua como módulo del apache, no admite ciertas instrucciones.

He encontrado una posible solución que seria cambiando el php.ini, segun el directorio en el que estés. Parece una buena idea y muy potente, ya que de esta manera podemos cambiar cualquier parámetro conocido.

En cuanto pueda lo probaré y si lo consigo postearé el resultado.

La información la he encontrado en:

http://www.php.net/manual/es/configu...nges.php#76362

que a su vez hace referencia a:

http://www.askapache.com/php/custom-...nd-tricks.html

Un saludo.

MarcosBL
28/05/2008, 15:36
Esa es una sintaxis correcta en Apache 2, no tendrás desactivados los .htaccess en el httpd.conf no ?

Mete esto en un .htaccess:

# PHP 4, Apache 1.

php_value register_globals 1


# PHP 4, Apache 2.

php_value register_globals 1


# PHP 5, Apache 1 y 2.

php_value register_globals 1


php_flag register_globals on
Para que funcione (que apache haga caso a los .htaccess) prueba en tu httpd.conf la directiva

AllowOverrides All
sea en esa carpeta X concreta o a nivel general.

Una vez tengas el .htaccess con el contenido anterior y el AllowOverrides en el httpd.conf, reinicia Apache para más seguridad (/etc/init.d/httpd restart) y prueba de nuevo.

wancho
28/05/2008, 15:01
Hola a todos,

Soy nuevo en esto de los servidores dedicados y bueno, me he estado defendiendo mas o menos utilizando las guías y ahora estos foros, que de paso quiero agradecer a toda la gente que esta posteando ya que si bien no he encontrado alguna solución a mi problema, he leido mucha información que seguramente me será útil en el futuro.

Mi problema es el siguiente:

Tengo un dominio el cual tiene una aplicación que necesita tener la variable de php register_globals activada.

He intentado con un archivo .htaccess poniendo la linea php_flag register_globals on, pero parece ser que el apache 2 no soporta el cambio de esta variable en el .htaccess.

Tambien he añadido la linea php_value register_globals 1 al httpd.conf, pero como el apache no tiene el php cargado como módulo, no reconoce la variable.

Tampoco quiero cambiar la variable en el php.ini ya que lo quiero sólo para un dominio, no para todos.

De momento no se me ocurre nada mas, ¿alguna idea?

Gracias de antemano.

Un saludo