Cuando poner session.use_trans_sid = 1 y cuando a cero.¿Que riesgos y/o ventajas tiene un caso y otro?
¿Y register_globals ?¿Cuando ON y cuando OFF?
| |||
Ambas directivas a "ON" (1) .. actualmente son solo comodidad a la hora de programar .. pero desventajas de seguridad principalmente en ambas. Register_gloabals a ON .. podemos usar llamadas "globales" a variables q enviamos de un formulario .. q recogemos de un URL ... q leemos de una session/cookie .. del servidor .. de un Upload (file) ... tan solo con llamarla por su nombre $variable .. Esto como veras no hace "legible" el código para interpretar de donde es esa varaible .. y ejemplo .. al usar sessiones podriamos "simular" una variable de session en un script.php .. tan solo con entrar por el url esa variable (nombre=valor) ..tipo: script.php?variable=valor ... Con Register_globals a OFF .. SOLO se aceptan las variables que lleguen por el "método" esperado o por su medio (cookie/session .. servidor .. etc). Y para ello tienes que emplear el array superglobal $_xxx .. ($_GET,$_POST,$_SESSION .. etc) o bien $HTTP_xxx_VARS (_FILES .. etc) dependiendo de la versión de PHP q uses (el array superglobal está disponible desde la versión 4.1x en adelante ...). -------- La directiva de session: session.use_trans_sid ... A 1 (ON) (propagación automatica) resulta mas sencillo de programar una aplicación que use sessiones .. pues dejas a PHP el control de donde propagara el Identificativo Unico de Session (SID) .. Si nos movemos con ese SID en automatico por nuestro sitio .. no hay mucho problema .. salvo q un usuario "de" un link de nuestro sisito con el SID propagado ... Si en nuestro sitio hacemos links externos a otras páginas . .estamos "pasandole" el SID actual a otro servidor .. el cual podria ser usado en el mismo instante o hasta q caduque la session podiendo en este caso "simular" una session activa de nuestro servidor ... PHP en su configuracion (php.ini) tiene una directiva extra: url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fields et=" En esa directiva indicamos en q Tag's HTML va a propagarse el SID automaticamente si así lo hemos configurado .. Es decir, donde PHP automaticamente insertará el código necesario para que se propague el SID .. En caso de formularios (etiqueta form) .. lo hará en un campo hidden .. en caso de Links (etiqueta href) .. añadirá el SID como variable extra &nombre_session=ID_session .. a lo q usemos .. Y así con todos los tag q usemos .. Aquí podemos limitar por ejemplo si usamos el SID automatico para formularios y no usamos links q requieran del SID .. podemos eliminar el tag href de la lista ... (a= .. minimo ..) ... Y en PHP 4.3.x .. del cual han mejorado muchoooooo el tema de sessiones (configuracion y seguridad) incluyen esta directiva: session.referer_check = En la cual podemos indicar nuestro dominio (? .. no lo he usado todavia xD) bajo el cual será valida la session activa .. así evitamos q nos entren desde dominios externos al nuestro con SID generados por un SID en propagación automatico a un sitio externo al nuestro. Un saludo, |