acceso desde una pagina a otra, a traves de metodo POST
Rodrigo Fuentealba
darkprox en gmail.com
Mie Feb 15 18:30:17 CLST 2006
Jose Felipe Sanhueza Paredes wrote:
> buenas, resulta que tengo el sigiuente dilema...me encargaron que
> desde una intranet acceder a un sistema oracle cuando el usuario lo
> necesite (es decir, puede navegar por muchas partes, y al final
> acceder al oracle)..asi de sencillo..
No entendí mucho la pregunta... pero a ver si te sirve esto:
--- la página de donde está el botón ---
Esta página será la que te lleve a tu otra aplicación, con una pequeña
función en javascript que haga por ti la recarga. Podría no funcionar
con algún navegador, pero a mí me ha funcionado en todos hasta ahora.
function recarga(url,formulario)
{
str1='window.document.'+formulario+'.action='+'"'+url+'"';
str2='window.document.'+formulario+'.submit()';
eval(str1);
eval(str2);
}
<html>
<...>
<form name="formlogin" method="post">
<input type='hidden' name='user' value=<?php echo($usuarioIngresado); ?>>
<input type='hidden' name='pass' value=<?php echo($pass); ?>>
<input type='button' value='Sist. Oracle'
onClick="recarga('pagina.oracle', 'formlogin');">
</form>
<...>
</html>
--- la página de inicio de sesión (pagina.oracle) ---
Esta página deberá estar en alguna parte de tu otra aplicación Oracle,
sea cual sea, en el servidor web que sea. Tendrás que crear la sesión y
utilizarla en la aplicación, haciendo referencia a $_SESSION['username']
y $_SESSION['password'] cada vez que necesites. La sesión deberá
cerrarse explícitamente en la página de logout con $_SESSION=array();
session_destroy(); y deberías comprobar que los cookies estén
habilitados para que la sesión sea persistente. Para un poco más de
seguridad, conviene mirar en pear.php.net el package pear/HTTP_Session,
que permite simplificar el proceso de sesiones, agregando un idle o algo
así.
<?php
session_start();
if(validar_post_login($_POST['user'],$_POST['pass']))
{
$_SESSION['username'] = $_POST['user'];
$_SESSION['password'] = $_POST['pass'];
header('Location: pagina.oracle.inicio');
exit();
}
else
{
die('Error: nombre de usuario y pass no válidos');
}
?>
> cual es la solucion que pienso...
> centralizar todas las contraseñas a traves de un directorio ldap (ya
> esta listo y verificado)..
> si tiene acceso al sistema de oracle (verificando si existe en arbol
> correspondiente en el ldap), le habilito un link hacia el sistema,
> PERO el logeo del oracle esta por metodo post (si fuese por get seria
> armar el url hacia el programa q verifica sesion)...alguna idea de
> como hacerlo?...podria llegar y hacer algo asi de directo?
Comentario al margen: usar GET para pasar contraseñas de una página a
otra es --->demasiado<--- inseguro.
>
> <form action='pagina.algo.del-.oracle' method='post'>
> <input type='hidden' name='user' value='$usuarioIngresado'>
> <input type='hidden' name='pass' value='$pass'>
> <input type=submit value='Sist. Oracle'>
> </form>
Sí, las sesiones en sí mismas... si quieres usar datos de una sesión en
otra, es bueno y fácil (no sé si lo mejor, a decir verdad lo dudo y
desconfío mucho de los métodos POST y GET, quizás alguien más en la
lista podría aportar más métodos de seguridad) pasarlas de esta forma.
Validar, validar y más validar, esa es la clave.
> se entiende la pregunta??..hay algo como persistencia de sesiones?..
> gracias..
Más información sobre la lista de distribución PHP