Ver Mensaje Individual
  #21 (permalink)  
Antiguo 18/11/2006, 13:04
santhy
 
Fecha de Ingreso: febrero-2006
Mensajes: 134
Antigüedad: 19 años
Puntos: 10
Cita:
Iniciado por Cluster Ver Mensaje
No entendí bien tu argumento .. Por mi parte sólo cometo que es necesario un session_start() (y no más) al principio de tu script .. o mejor dicho antes de pretender ver el valor del array superglobal: $_SESSION.

Te propongo un ejemplo de posible falla de seguridad .. imagina situación: register_globals a ON ...

tu_script.php?_SESSION=valor

Ya pasaría por tu validación como "que existe" (isset()) pues aprovechando de que "register_globals a ON" no hace discriminación con la variable o método por el que llega .. la introducí por el URL, esto sumado a que session_start() estaría -despues- de esa validación .. podría ser una combinación no muy segura.
Tienes razón, para eso se usa normalmente o bien
Código PHP:
if(!isset($_SESSION) && bool(ini_set(register_globals)) == 0
o aún mejor:
Código PHP:
if(!isset($_SESSION) || empty(session_id()))
session_start(); 
Cita:
Iniciado por Cluster Ver Mensaje
El uso de "session.auto_start" afectaría a todo el servidor y aplicación que en el corra. Creo que es más sano usar el inico de sesiones (session_start() en el momento que se necesite .. no por defecto en todo script PHP que ese servidor ejecute).

Un saludo,
Ya, pero cuando tú no puedes controlar ese valor??
Esto es para que sea más compatible con todos los servidores, al igual que usar <?php en lugar de <? o <% (si use_short_tags o use_asp_tags están off respectivamente, <? o <% no son reconocidos por PHP, sólo <?php y <script language="php">)
Saludos

PD: Se me acaba de ocurrir que para prevenir el lapaginaquesea.php?_SESSION=valor se podría utilizar algo como
Código PHP:
<?php
if($_REQUEST[_SESSION]) {
if(
is_array($_REQUEST[_SESSION])) {
foreach(
$_REQUEST[_SESSION] as $clave => $valor) {
$_SESSION[$clave] = 'VALOR DESHABILITADO ^_^';
//E_FOREACH
}//E_is_array?
}//E_$_Req[_SESSION]

?>
Que te parece?