A ver... hay un error de conceptos....
Cuando tienes habilitados register globals, produce que, al pasar una variable por GET, por ejemplo que tengamos
www.miweb.com?aut=yes, PHP generara la variable $aut cuyo contenido será 'yes'. Pero si pasamos por un formulario una input, por ejemplo:
<input name="aut" ... value="yes">
Esto, tambien generará en php una variable $aut y cuyo contenido será 'yes'. Y si mal no recuerdo, pasa lo mismo con las sesiones.
Por lo tanto el usuario puede facilmente falsear información, enviando por GET el valor de "aut" que debía recibirse por POST.
Para esto, se usa Register Globals en OFF, con lo cual el valor enviado estará en un array $_POST, $_GET, $_SESSION , etc... De esta forma $_POST['aut'] será distinto de $_GET['aut'].
Lo único que no se puede falsear (o al menos es extremadamente dificil) es la información almacenada en una sesión. Las variables enviadas por POST, se pueden falsear con algún, aunque no es muy fácil (en realidad, dependiendo de la seguridad de tu web). Las cookies son algo complicadas de falsear para un usuario normal y GET es la más fácil de todas.
Una forma algo segura es chequear el valor de $_SERVER['HTTP_REFERER']. Esto debe devolverte la dirección de la página que llamó al archivo en que se está ejecutando el script.
Altareum.