systemadmin.es > LAMP y web > El mal de .htaccess y los ini_set() de PHP

El mal de .htaccess y los ini_set() de PHP

La posibilidad de cambiar características de PHP o de Apache según si la petición accede a un cierto directorio leyendo un cierto .htaccess o bien ejecuta un cierto script PHP que hace un ini_set() es, sin duda, útil en muchas ocasiones. El problema viene del mal uso de dichas características.

Recientemente me he encontrado con la siguiente burrada dentro del DocumentRoot de una aplicación web:

# ls -lah
total 112G
drwxrwxr-x  2 luser luser 4.0K Jul 19  2010 .
drwxrwxr-x 10 luser luser 4.0K Jul 19  2010 ..
lrwxrwxrwx  1 luser luser   11 Jul 19  2010 log -> ../data/log
-rwxrwxr-x  1 luser luser 111G May 16 16:59 php.log

Evidentemente, dentro del código existía lo siguiente:

ini_set('error_reporting', E_ALL);
ini_set("error_log",PATH_ROOT."log/php.log");

Y no es que el código estuviera especialmente depurado para que no aparecieran errores, sino que el log se parecía más bien a esto (parcialmente debido al E_ALL):

Una vez vista dicha burrada, sólo que busquemos la cadena ini_set en los ficheros php es fácil encontrar burradas similares:

# find . -iname \*php -exec grep ini_set {} \;
(...)
ini_set('max_execution_time', 0);

Evidentemente podemos evitar que esto ocurra con php_admin_value o php_admin_flag, pero en realidad dichas funciones simplemente deberían ser usadas con mayor responsabilidad.

Deja un comentario:

XHTML - Tags permitidos:<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>