Cita:
Iniciado por Cluster
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
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?