OVH Cloud OVH Cloud

Traitement d'un formulaire et redirection

4 réponses
Avatar
PJ tl
Bonjour,

J'ai un formulaire html qui permet de choisir entre 2 sites dont
l'accès est sécurisé par login et mot de passe. Un script php gère
la redirection ainsi :
<?
switch ($redir)
{
case "site1": header("Location:
http://www.site1.com/index.php?login=sfd&pass=4582");
case "site2": header("Location:
https://www.site2.fr/index.php?login=sfd&pass=4582");
}
?>

Le problème est que les logins et mots de passe transittent par l'URL,
ce qui n'est pas terrible côté sécurité.
L'idéal se serait faire un formulaire type POST, mais je ne veux pas
faire un clic suplémentaire inutile ...

Merci de votre aide.

PJ

4 réponses

Avatar
John GALLET
Bonjour,

switch ($redir)
{
case "site1": header("Location:
http://www.site1.com/index.php?login=sfd&passE82");
case "site2": header("Location:
https://www.site2.fr/index.php?login=sfd&passE82");
}
Le problème est que les logins et mots de passe transittent par l'URL,
ce qui n'est pas terrible côté sécurité.


C'est même une faille importante, enfin tout dépend de ce à quoi ça
donne accès, et un problème connu en utilisant cette saloperie là.

L'idéal se serait faire un formulaire type POST, mais je ne veux pas
faire un clic suplémentaire inutile ...


1) Pour quelle raison profonde doit-on passer par ce script de
redirection au lieu que le formulaire envoie directement les bonnes
données au bon endroit ?

2) on doit pouvoir jouer avec la lib curl et afficher de manière
transparente la première page en utilisant POST, mais si les liens sont
locaux (i.e. toto.html au lieu de http://www.site1/toto.html) on va pas
s'en sortir.

3) vérifier du côté des cookies, mais si c'est du inter-domaine, ça ne
devrait pas bien marcher et de toutes façons c'est pas terrible comme
solution.

a++;
JG

Avatar
CrazyCat
PJ tl wrote:
<?
switch ($redir)
{
case "site1": header("Location:
http://www.site1.com/index.php?login=sfd&passE82");
case "site2": header("Location:
https://www.site2.fr/index.php?login=sfd&passE82");
}
?>
L'idéal se serait faire un formulaire type POST, mais je ne veux pas
faire un clic suplémentaire inutile ...


En fait, tu devrais passer en javascript:
<?
$login = "sdf";
$pass = "4582";
switch ($redir) {
case "site1":
$url = "http://www.site1.com/index.php";
break;
case "site2":
$url = "http://www.site2.com/index.php";
break;
}
$form = "<form name="redirect" action="$url" method="post">n";
$form .= "<input type="hidden" name="login" value="$login">n";
$form .= "<input type="hidden" name="pass" value="$pass">n";
$form .= "</form>n";
echo "<html>n<head></head>n<body onload="redirect.submit();">n";
echo $form;
echo "</body>n</html>n";
?>

Le php va créer le formulaire, l'afficher et le javascript "onload" va
le poster.
--
Aide informatique: http://help-info.forumactif.com
Humour: http://www.chatfou.com
Tchattez en liberté: http://www.crazy-irc.net

Avatar
Chewee
"PJ tl" a écrit dans le message de news:

Bonjour,

J'ai un formulaire html qui permet de choisir entre 2 sites dont
l'accès est sécurisé par login et mot de passe. Un script php gère
la redirection ainsi :
<?
switch ($redir)
{
case "site1": header("Location:
http://www.site1.com/index.php?login=sfd&passE82");
case "site2": header("Location:
https://www.site2.fr/index.php?login=sfd&passE82");
}
?>

Le problème est que les logins et mots de passe transittent par l'URL,
ce qui n'est pas terrible côté sécurité.
L'idéal se serait faire un formulaire type POST, mais je ne veux pas
faire un clic suplémentaire inutile ...

Merci de votre aide.

PJ



Pourquoi pas par un cookie?

Avatar
xav

L'idéal se serait faire un formulaire type POST, mais je ne veux pas
faire un clic suplémentaire inutile ...


Tu peut toujours poster ton mdp et login en utilisant la lib Curl
http://fr.php.net/curl si l'extension est dispo sur ton serveur, sinon
tu peut utiliser une classe comme pear::HTTPClient
http://pear.php.net/package/HTTP_Client

A +
xavier