| |
 |
|
 |
| |
Scripts
Cambiar Register Globals On u Off
Investigamos el tema acerca de la variable register globals; como su sitio web esta alojado en un servidor compartido, no podemos cambiar esta variable para todos nuestros clientes, pero usted lo puede hacer solamente para su cuenta, para eso usted debe crear el archivo php.ini en la carpeta donde usted desea cambiar esta variable, el archivo debe contener lo siguiente
register_globals=off
y su variable será desactivada, usted puede comprobar este cambio utilizando el comando phpinfo(); dentro de un archivo php para que vea que la variable register globals tiene un nuevo valor, para más información por favor visite.
CLIC AQUI
Más Info - Uso de Register Globals
Quizás el cambio más controversial en la historia de PHP se ha dado cuando la directiva register_globals pasó de tener como valor por defecto ON al valor OFF en PHP 4_2_0_ La dependencia sobre esta directiva era bastante común y muchas personas nisiquiera estaban enteradas de que existía y asumían que ese era el modo en que PHP trabajaba_ Esta página explicará cómo puede llegar a escribirse código inseguro con esta directiva pero tenga en mente que no es la directiva misma la que es insegura sino el uso inapropiado de ella_
Cuando se encuentra activa, la directiva register_globals inyectará (o envenenará) sus scripts con todo tipo de variables, como variables de peticiones provenientes de formularios html_ Esto junto con el hecho de que PHP no requiere la inicialización de variables significa que es muy fácil escribir código inseguro_ Fue una decisión difícil, pero la comunidad de PHP decidió desahibilar esta directiva por defecto_ Cuando está habilitada, las personas usan variables sin saber con seguridad de dónde provienen y solo queda asumir_ Las variables internas que son definidas en el script mismo son mezcladas con los datos enviados por los usuarios y al deshabilitar register_globals se modifica este comportamiento_ Demostremos este caso con un ejemplo del uso incorrecto de register_globals:
Ejemplo 15_14_ Ejemplo del uso inapropiado de register_globals = on
// definir $autorizado = true solo si el usuario ha sido autenticado
if (usurio_autenticado()) {
$autorizado = true;
}
// Ya que no inicializamos $autorizado como false, esta podria estar
// definida a traves de register_globals, como en el caso de GET
// auth_php?autorizado=1
// De modo que cualquier persona podria verse como autenticada!
if ($autorizado) {
include "/datos/muy/importantes_php";
}
?>
Cuando register_globals = on, nuestra lógica anterior podría verse comprometida_ Cuando la directiva está deshabilitada, $autorizado no puede definirse a través de peticiones, así que no habrá ningún problema, aunque es cierto que siempre es una buena práctica de programación inicializar las variables primero_ Por ejemplo, en nuestro ejemplo anterior pudimos haber realizado primero algo como $authorized = false_ Hacer esto representa que el código anterior podría funcionar con register_globals establecido a on u off ya que los usuarios no serían autorizados por defecto_
Otro ejemplo es aquel de las sesiones_ Cuando register_globals = on, podríamos usar también $nombre_usuario en nuestro siguiente ejemplo, pero nuevamente usted debe notar que $nombre_usuario puede provenir de otros medios, como GET (a través de la URL)_
Ejemplo 15_15_ Ejemplo del uso de sesiones con register_globals on u off
// No sabriamos de donde proviene $nombre_usuario, pero sabemos que
// $_SESSION es para datos de sesion
if (isset($_SESSION['nombre_usuario'])) {
echo "Hola {$_SESSION['nombre_usuario']}";
} else {
echo "Hola Invitado ";
echo "¿Quisiera iniciar su sesión?";
}
?>
Incluso es posible tomar medidas preventivas para advertir cuando se intente falsificar la información_ Si usted sabe previamente con exactitud el lugar de donde debería provenir una variable, usted puede chequear si los datos enviados provienen de una fuente inadecuada_ Aunque esto no garantiza que la información no haya sido falsificada, esto requiere que un atacante adivine el medio apropiado para falsificar la información_ Si no le importa de dónde proviene la información, puede usar $_REQUEST ya que allí se incluye una mezcla de variables que provienen de datos GET, POST y COOKIE_ Consulte también la sección del manual sobre el uso de variables desde fuera de PHP_
Ejemplo 15_16_ Detección de envenenamiento simple de variables
if (isset($_COOKIE['COOKIE_MAGICA'])) {
// COOKIE_MAGICA proviene de una cookie_
// Asegurese de validar los datos de la cookie!
} elseif (isset($_GET['COOKIE_MAGICA']) || isset($_POST['COOKIE_MAGICA'])) {
mail("admin@ejemplo_com", "Posible intento de intromision",
$_SERVER['REMOTE_ADDR']);
echo "Violación de seguridad, el administrador ha sido alertado_";
exit;
} else {
// COOKIE_MAGICA no fue definida en este REQUEST
}
?>
Por supuesto, deshabilitar register_globals no quiere decir que su código vaya a ser seguro_ Por cada trozo de datos que sea enviado por el usuario, éste debe ser chequeado en otras formas_ ¡Siempre valide los datos de los usuarios e inicialice sus variables! Para chequear por variables no inicializadas, usted puede usar error_reporting() para mostrar errores del nivel E_NOTICE_
Superglobals: Nota de disponibilidad: Desde 4_1_0, están disponibles algunas matrices superglobales tales como $_GET, $_POST, y $_SERVER, etc_ Para más información puede consultar la sección superglobals
|
|
 |
|
 |
Más respuestas para Scripts
» Volver a "Pregunas Frecuentes"
| |
|
Tags: hosting , register_globals on
, donde se coloca el global register en on o en off
, cambiar register_globals
, como cambiar register_globals off
, register_globals habilitar servidor remoto
, register_globals off
, como modificar register_globals doff
, configurar php.inisesiones register_globals
, como desactivar register_globals
, en donde modifico register globals
| Web Hosting , paginas html ejemplos
, como ejecutar comando a una base datos desde cmd de windows
, modelos de cartas para restaurante
, imagenes del sol nasa 2010
, vision mision empresa
, tecnologia y prostitucion
, dreamweaver no conecta con host
, acute
, plantilla de revista
, programa aumentar potencia wifi
, ejemplo de pagina web sencilla codigo
, letras grandes de colores
, como colocar 2 imagenes de fondo en html
, modelo de menu de restaurante
, ejemplos de mision y vision de una empresa
, microsoft outlook 2010 manual
, como abrir html en php
, plantillas web taringa
, manual cartas restaurantes
,
|
| |