Pour tester une connexion, il faut d’abord générer un cookie via une première requête curl puis utiliser ce même cookie pour accéder aux pages de votre site. Voilà le principe :
Première requête : génération de cookie avec curl
curl "http://monURL/monFormulaire" -c fichierCookie --data "param1=valeur1¶m2=valeur2"
Version simplifiée de la requête curl de génération de cookie
Deuxième requête : utilisation du cookie pour appeler une URL
curl -b fichierCookie URL
Ci-dessous on a un exemple concret, j’ai effectué un test de connexion de la page de login wordpress. Vous remarquerez que j’ai ajouté un certain nombre de paramètres avec l’option -H, ce sont des entêtes HTTP, elles sont indispensables. Notamment celle qui indique le user agent, à savoir la simulation du test de connexion via un navigateur web.
curl -c cookie.txt 'http://www.leblogdefatiha.com/wp-login.php' -H 'Origin: http://www.leblogdefatiha.com' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Cache-Control: max-age=0' -H 'Proxy-Connection: keep-alive' --data 'log=xxxxxx&pwd=xxxxxxx&wp-submit=Se+connecter&redirect_to=http%3A%2F%2Fwww.leblogdefatiha.com%2Fwp-admin%2F&testcookie=1' --compressed
curl -b cookie.txt "http://www.leblogdefatiha.com/wp-admin/users.php" -H 'Origin: http://www.leblogdefatiha.com' -H 'Accept-Encoding: gzip, deflate' -H 'Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Cache-Control: max-age=0' -H 'Proxy-Connection: keep-alive' --compressed
Test avec la page de connexion wordpress
Vous pouvez ainsi entrevoir toutes les possibilités qui vous sont offertes. Vous pouvez scripter ces tests et ainsi savoir si vos sites sont dispos et si l’authentification fonctionne.
Je me permets une petite diversion, vous trouverez ci-dessous un exemple concret de requête curl récupérée en me connectant sur twitter :

Sous Chrome, c’est simple de récupérer une requête curl, il vous suffit de suivre la procédure ci-dessous :
Vous vous connectez à votre compte twitter puis vous faîtes un clic droit sur la page « Inspecter ». Vous choisissez l’onglet Network, puis vous faîtes un clic droit sur le lien sessions et vous sélectionnez Copy puis « Copy as cURL (bash) » .
