HTTP Post pour vous connecter à un site Web avec horodatage, jeton, nom d'utilisateur et mot de passe

0

À partir d'un script, je souhaite me connecter à un site Web. Pour cela, j'ai recherché la source pour la demande POST. La demande de publication visant à vous connecter au site Web contient les données "nom d'utilisateur", "mot de passe", "horodatage" et "jeton". Cependant, lorsque je copie l'horodatage et le jeton et que je colle la demande de publication dans la barre d'adresse de mon navigateur, avec mon nom d'utilisateur et mon mot de passe, comme suit:

https://example.com/action/login?__elgg_token=905adbf0c0111fef78a8344c38c8f2a8&__elgg_ts=1461577445&username=foo&password=bar

la connexion a échoué. Ai-je besoin d'un jeton et d'un horodatage différents?

C'est de la source:

action="https://example.com/action/login" method="post" > 

<input type="hidden"  name="__elgg_token"  value="905adbf0c0111fef78a8344c38c8f2a8" />

<input type="hidden"  name="__elgg_ts"  value="1461577445" />

<input type="text"   name="username"  value="" class="form-control login-textarea form-control" />

<input type="password"   name="password"  value="" class="form-control login-textarea" />
tzippy
la source
Il y a une différence entre POST et GET. En passant des paramètres dans l'URL, vous obtiendrez un GET. Tout serveur est libre de traiter un GET avec des paramètres différemment du POST qu’il attend.
Exécuter CMD
En outre, cette balise [post] est destinée au test automatique à la mise sous tension. Pas la variante HTTP.
Hennes

Réponses:

0

lorsque je copie l'horodatage et le jeton et que je les colle [dans une URL de la barre d'adresse d'un navigateur] ... la connexion a échoué

Autant que je sache, la barre d’adresse des navigateurs Web courants force le navigateur à émettre une demande HTTP GET, et non une requête HTTP POST.

Comme le classe Stacker a commenté. Vous ne pouvez pas supposer qu'une requête POST peut être transformée en une requête GET équivalente qui sera reconnue par le serveur.

À partir d'un script, je souhaite me connecter à un site Web [qui attend une demande HTTP POST]

Si vous utilisez un langage de script de ligne de commande conventionnel, vous pouvez utiliser plusieurs outils pour émettre une demande POST.

À partir d'un script shell, vous pouvez utiliser des outils tels que Wget ou cURL pour émettre des demandes POST et capturer les cookies de session résultants, etc.

Les scripts écrits en utilisant d'autres langages de script ou des langages plus généraux (Perl, Ruby, Python, etc.) ont généralement des bibliothèques standard qui permettent d'émettre des requêtes POST et GET et de gérer les cookies, etc.

Exemple tiré de la page de manuel Wget

# Log in to the server.  This can be done only once.
wget --save-cookies cookies.txt \
     --post-data 'user=foo&password=bar' \
     http://server.com/auth.php

# Now grab the page or pages we care about.
wget --load-cookies cookies.txt \
     -p http://server.com/interesting/article.php

D'autres exemples ne sont pas difficiles à trouver

RedGrittyBrick
la source