OVH Cloud OVH Cloud

"recréer" un envoi de formulaire en post

5 réponses
Avatar
Jérôme W.
Bonjour,

J'ai une question un peu délicate : peut on à partir d'une page asp/asp.net
créer un fichier de réponse HTTP qui correspondrait à l'envoi d'un
formulaire envoyé en mode "POST" ?

Exemple pour illustrer :

Soit un formulaire sur le web avec login/password et bouton "envoyer" situé
à l'adresse
http://www.site-externe/authentification.cgi
dont le traitement se ferai sur la page
http://www.site-externe/traitement.cgi
et en cas de succès d'authentification
http://www.site-externe/index.cgi

Mon site devrait contenir cette page
http://mon-site/redirection.aspx
qui redirigerait directement vers
http://www.site-externe/traitement.cgi
avec les bons login/password (car je peux m'authentifier sur le site
externe) !


Quelqu'un sait faire ça et me l'expliquer ??
Merci pour votre aide

Jérôme

5 réponses

Avatar
|||Cypher|||
Si G bien compris ton pb, il te suffit de mettre
http://www.site-externe/traitement.cgi comme "action" de ton formulaire
("method=POST" puisque c'est pour toi un prérequis).
Et éventuellement un "target=_new" pour que le résultat de ta requête
s'affiche dans une nouvelle fenêtre.

Donc pour résumer :
<pre>
<form action=" http://www.site-externe/traitement.cgi" method=post
target=_new>
[...]

</pre>
--
Olivier aka Cypher
Ingénieur Dev. Web freelance.




"Jérôme W." a écrit dans le message
de news:
Bonjour,

J'ai une question un peu délicate : peut on à partir d'une page


asp/asp.net
créer un fichier de réponse HTTP qui correspondrait à l'envoi d'un
formulaire envoyé en mode "POST" ?

Exemple pour illustrer :

Soit un formulaire sur le web avec login/password et bouton "envoyer"


situé
à l'adresse
http://www.site-externe/authentification.cgi
dont le traitement se ferai sur la page
http://www.site-externe/traitement.cgi
et en cas de succès d'authentification
http://www.site-externe/index.cgi

Mon site devrait contenir cette page
http://mon-site/redirection.aspx
qui redirigerait directement vers
http://www.site-externe/traitement.cgi
avec les bons login/password (car je peux m'authentifier sur le site
externe) !


Quelqu'un sait faire ça et me l'expliquer ??
Merci pour votre aide

Jérôme




Avatar
Jérôme W.
C'est un peu ça sauf que l'utilisateur ne doit plus rentrer le
login/password ==> j'aimerai que le login/password soient intégrés
automatiquement dans la réponse HTTP de ma page
http://mon-site/redirection.aspx

D'autres idées ?



"|||Cypher|||" a écrit dans le message de news:

Si G bien compris ton pb, il te suffit de mettre
http://www.site-externe/traitement.cgi comme "action" de ton formulaire
("method=POST" puisque c'est pour toi un prérequis).
Et éventuellement un "target=_new" pour que le résultat de ta requête
s'affiche dans une nouvelle fenêtre.

Donc pour résumer :
<pre>
<form action=" http://www.site-externe/traitement.cgi" method=post
target=_new>
[...]

</pre>
--
Olivier aka Cypher
Ingénieur Dev. Web freelance.




"Jérôme W." a écrit dans le


message
de news:
> Bonjour,
>
> J'ai une question un peu délicate : peut on à partir d'une page
asp/asp.net
> créer un fichier de réponse HTTP qui correspondrait à l'envoi d'un
> formulaire envoyé en mode "POST" ?
>
> Exemple pour illustrer :
>
> Soit un formulaire sur le web avec login/password et bouton "envoyer"
situé
> à l'adresse
> http://www.site-externe/authentification.cgi
> dont le traitement se ferai sur la page
> http://www.site-externe/traitement.cgi
> et en cas de succès d'authentification
> http://www.site-externe/index.cgi
>
> Mon site devrait contenir cette page
> http://mon-site/redirection.aspx
> qui redirigerait directement vers
> http://www.site-externe/traitement.cgi
> avec les bons login/password (car je peux m'authentifier sur le site
> externe) !
>
>
> Quelqu'un sait faire ça et me l'expliquer ??
> Merci pour votre aide
>
> Jérôme
>
>




Avatar
Antonio Fontes
Bonjour,


C'est un peu ça sauf que l'utilisateur ne doit plus rentrer le
login/password ==> j'aimerai que le login/password soient intégrés
automatiquement dans la réponse HTTP de ma page
http://mon-site/redirection.aspx



C'est à cela que servent les champs de type 'hidden': des champs
remplis par le serveur et dont l'utilisateur n'a pas à se soucier du
contenu...

<input type="hidden" name="password" value="mauvaispass">

et si vous souhaitez encore plus d'automatisme, un bon submit en
javascript:

document.forms[0].submit;

et le tour est joué...

.antoine

--

Blog Sécurité Web (Swiss blog about Web Security)
http://www.nxtg.net/is/
Avatar
Jérôme W.
J'ai déjà testé cette solution... et elle marche, par
contre n'importe qui peut récupérer le login/password dans
la page.

==> Je voudrais que mon serveur IIS crée une réponse HTTP
(qui corresponde au POST d'un formulaire situé sur
internet) avec le bon login/password, puis dirige cette
réponse sur la page de traitement du formulaire externe...

Jérôme


-----Message d'origine-----


Bonjour,


C'est un peu ça sauf que l'utilisateur ne doit plus




rentrer le
login/password ==> j'aimerai que le login/password




soient intégrés
automatiquement dans la réponse HTTP de ma page
http://mon-site/redirection.aspx



C'est à cela que servent les champs de type 'hidden': des


champs
remplis par le serveur et dont l'utilisateur n'a pas à se


soucier du
contenu...

<input type="hidden" name="password" value="mauvaispass">

et si vous souhaitez encore plus d'automatisme, un bon


submit en
javascript:

document.forms[0].submit;

et le tour est joué...

..antoine

--

Blog Sécurité Web (Swiss blog about Web Security)
http://www.nxtg.net/is/



.



Avatar
Antoine F.
>==> Je voudrais que mon serveur IIS crée une réponse HTTP
(qui corresponde au POST d'un formulaire situé sur
internet) avec le bon login/password, puis dirige cette
réponse sur la page de traitement du formulaire externe...
Jérôme



Vous pouvez dans ce cas générer une requête http propre en ordre
et en récupérer le flux entrant. Ensuite, éliminer le contenu superflu,
puis le retourner au client.

Cela donnerait quelque chose dans ce genre:

//création du client HTTP
TcpClient c = New TcpClient();
tc.Connect(www.server.com", 80);

//élaboration de la requête
string req = "POST /web/form.aspx HTTP/1.0rn" +
"host:www.server.comrn" +
"rn" +
"login=monlogin&password=monpasswordrnrn";

//acquisition des flux
StreamWriter sw = New StreamWriter(tc.GetStream());
StreamReader sr = New StreamReader(tc.GetStream());

//envoi de la requête
sw.write(req);
sw.flush();

//récupération de la réponse
string resp = sr.ReadToEnd();

//fermeture et libérations
sr.Close();
sw.Flush();
sw.Close();
tc.Close();
tc = null;

//faire joujou avec la chaine 'resp' puis l'inclure dans la réponse:
Response.Write(resp);


.antoine

--

Blog Sécurité Web (Swiss blog about Web Security)
http://www.nxtg.net/is/