
11/01/2005, 14:35
|
O_O | | Fecha de Ingreso: enero-2002 Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 23 años, 2 meses Puntos: 129 | |
1) .. Tal vez un "cambiazo" de una variable que te llegue por POST y te la "meten" por GET a tu script no te presente mucho problema de seguridad .. pero si si fuese una de sesión por ejemplo.
Nadie dice que tengas que hacer $var=$_GET['var'] .. siempre puedes usar directamente $_GET['var'] .. eso sí con unas "teclas" más que pulsar para escribir el nombre de la varaible.
En una de las primeras FAQ's tienes una dedicada a los problemas de seguridad de usar por ejemplo cosas tipo "register_globals a OFF" y asumir como globales varaibles de sesión como en tu ejemplo lo estás haciendo o esperando tomar así sus valores en algunos puntos ..
----------------------
Sobre el tema de sesiones .. en general al igual que las cookies ... su valor no puedes tomarlo o mejor dicho "queda disponible" hasta la siguiente petición al servidor (recarga de página, script que saltas o cambias .. etc).. Es decir .. no puedes hacer cosas como
$_SESSION['variable']="valor";
y esperar tomar su valor a continuación con un :
echo $_SESSION['variable'];
para que -realmente- el valor de tu sesión sea el que contiene .. tendrías que recargar la página al menos para obtener su real valor. o ahí .. definir su valor y leer esa variable de sesión en otro script.
En tu caso particular .. esas variable $nombre y $codigo .. no sé de donde salen: será de un formulario? .. son las variables de sesión? .. (ves por qué es tan importante definir y usar el método que se use? .. así no hay forma de saber de donde salen .. es más se pueden hasta confundir o "solapar" sus valores sobre todo si usas register_globals a ON ..).
$query="SELECT codcar, nombre FROM carteros WHERE nombre = '$nombre' AND codcar = '$codigo' ";
En otro lado del script haces:
if (isset ($_SESSION['nombre'])){
// Si está una sesión activa -> mata sesion
// todo el código del link del manual oficial de PHP que te dejé .. +
session_unset();
session_destroy();
// redireccionar aquí mismo ..
header ("Location: secion.php");
exit;
}
dice el código "si está definido la variable $_SESSION['nombre'] .. entoncces destruye la sesión y redirecciona hacia secion.php .. Es decir . .matas toda la sesión ? .. Se supone que ese código completo que presentas se llama "secion.php"
Por lo demás .. al usar $_SESSION (los arrays superglobales) debes usar:
unset($_SESSION) en lugar de session_unset();
(según recomendaciones de PHP.net)
Un saludo, |