// post

Diseño

Dreamhost, W3C Validator y PHPSESSID

Si estáis alojados en Dreamhost y estáis desarrollando una web con sesiones PHP os encontraréis con el problema de que al final de cada dirección URL, añade algo del tipo ?PHPSESSID=un_número_to_largo. Esto es bastante antiestético, además no es válido según el W3C. Para arreglaro, Davide Salerno nos propone una solución ingeniosa para evitar que compilar PHP nosotros mismos.

Lo traduzco directamente de su blog:

$ ssh tuusuario@tudominio.com
$ mkdir ~/tudominio.com/cgi-bin/
$ nano php_update

Añadimos lo siguiente a ese fichero:

#/bin/sh

CGIFILE="$HOME/tudominio.com/cgi-bin/php.cgi"
INIFILE="$HOME/tudominio.com/cgi-bin/php.ini"

cp /usr/local/bin/php "$CGIFILE"
cp /etc/php/php.ini "$INIFILE"

perl -p -i -e '
s/.*session\.use_only_coockies.*/session\.use_only_coockies = 1/;
s/.*session\.use_trans_sid.*/session\.use_trans_sid = 0/;
' "$INIFILE"

Ahora lo ejecutamos:
$ chmod +x php_update
$ ./php_update

Y por si cambian el fichero de configuración de PHP, nos haremos una tarea cron que se active cada semana:
$ crontab -e

Añadimos la siguiente línea y lo guardamos:

@weekly /home/tuusuario/php_update

Finalmente modificamos el archivo .htaccess de nuestro dominio para que use nuestros ficheros de configuración

AddHandler php-cgi .php
Action php-cgi /cgi-bin/php.cgi

Y ya tenemos solucionado el problema! :)

Editado: al hacer esto ha dejado de funcionar la función mail(), a ver si lo arreglo…
Editado 2: o se ha arreglado solo o he tocado algo del php.ini sin darme cuenta y funciona XD

Comentarios

Los comentarios están cerrados.

  1. El mantener la sesión mediante parámetros GET en la url puede ser, aparte de feo, un problema de seguridad. Piensa que cualquier visitante que vaya a otra web desde la tuya a través de un enlace le va a dejar bien guardaico en el http-referer el identificador de sesión que estaba usando. Durante un rato la cuenta de ese usuario es vulnerable.

    La gente de Django, por ejemplo, decidieron no usar la url para transmitir las sesiones precisamente por eso.

    Me da a mi que eso explica en parte (pasando por alto la paranoia) por qué los típicos webmails no te dejan hacer click en un enlace directamente, si no que te llevan a un script suyo que hace de redirector y probablemente elimina información de sesión de la url para que el http-referer no te delate. Bueno, eso y saber qué enlaces pinchamos y cuales no :)

    Escrito por enlavin | 9/May/2007, 9:12 am
  2. También hay que tener en cuenta que en el siglo XXI hay gente que no tiene las Cookies activadas y cuenta abominaciones de ellas.

    Tener la sesión en un parámetro de la URL es la única opción para estos paranoicos.

    Escrito por lgs | 9/May/2007, 9:29 am
  3. Tener las cookies desactivadas globalmente (desactivar cookies de terceros, aún…) es una burrada, estoy con Enlavin.

    Escrito por Blaxter | 9/May/2007, 12:34 pm

Bienvenido a The Power of Mind

The Power of Mind es el blog personal de DraXus, orientado a temas de Informática, Software Libre e Internet. Más sobre el autor…

del.icio.us flickr plurk twitter skype
linkedin facebook tuenti lastfm youtube

flickr

También escribo en

The Power of Light
Sueño Colectivo