Dans le monde Unix/Linux, on trouve énormément de personne qui utilisent la commande cURL. En effet, c’est une commande très utile mais connaissez-vous réellement la puissance de cet outil ?
Que signifie cURL ?
Avant tout, il faut savoir que curl s’écrit en réalité cURL qui est l’abréviation de « client URL request library », ce qui signifie en français « librairie de requêtes URL pour les clients ».
Cet outil est apparu en 1997 sous le nom de urlget.
cURL permet avant tout de tester et vérifier le fonctionnement d’un protocole et la disponibilité du contenu mais elle permet aussi de collecter des informations (en les téléchargeant par exemple).
Le programme se repose sur la librairie libcurl développé en langage C.
Utiliser cURL
Très souvent, nous utilisons cURL de manière très basique, pour vérifier qu’un site est bel et bien disponible et en ligne.
Par exemple, si je veux vérifier que https://safecode.fr est disponible, je vais tout simplement effectuer la commande :
$ curl https://safecode.fr
En retour, la commande fournit le code source de la page (que j’ai raccourci pour l’exemple).
<!DOCTYPE html>
<html lang="fr-FR">
<head>
<title>Safecode - Plus de sécurité dans un monde connecté</title>
etc...
A noter que http://safecode.fr permet de définir le protocole à utiliser pour l’outil mais celui-ci est utilisé par défaut. Nous pouvons donc aussi effectuer la commande :
$ curl safecode.fr
<!DOCTYPE html>
<html lang="fr-FR">
<head>
<title>Safecode - Plus de sécurité dans un monde connecté</title>
etc...
Cet article n’a pas pour but de vous montrer toutes les commandes possibles. Il y en a un paquet mais nous allons vous montrer deux autres mises en applications.
Avec cURL, vous pouvez obtenir l’entête d’identification par exemple avec la commande :
$ curl --head https://safecode.fr
HTTP/2 301
date: Wed, 18 Mar 2020 13:49:00 GMT
content-type: text/html; charset=UTF-8
set-cookie: __cfduid=d8f73dac546c5e7133b80de13a299b7ea1584539340; expires=Fri, 17-Apr-20 13:49:00 GMT; path=/; domain=.safecode.fr; HttpOnly; SameSite=Lax; Secure
x-redirect-by: WordPress
set-cookie: xRqKjnJzEhr=AUgY%2AozumXR; expires=Thu, 19-Mar-2020 13:49:00 GMT; Max-Age=86400; path=/
set-cookie: tesuYAwgFhEaoG_=u.2NWG3nSsg4JQx; expires=Thu, 19-Mar-2020 13:49:00 GMT; Max-Age=86400; path=/
set-cookie: lzadmWBXZKgc=XWNCr%5B7lh09m; expires=Thu, 19-Mar-2020 13:49:00 GMT; Max-Age=86400; path=/
location: https://safecode.fr/
cf-cache-status: DYNAMIC
expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
server: cloudflare
cf-ray: 575f6a1e1ee9ce73-LHR
alt-svc: h3-27=":443"; ma=86400, h3-25=":443"; ma=86400, h3-24=":443"; ma=86400, h3-23=":443"; ma=86400
On peut voir que cette commande peut donner des nombreuses informations précieuses sur un site internet. Par exemple vous pouvez voir que le site utilise le CMS WordPress et que j’ai Cloudflare comme CDN.
Les données retournées peuvent être stockées simplement. Si nous voulons stocker le retour de la commande précédente dans test.txt, il nous suffit d’exécuter la commande :
$ curl -o test.txt https://safecode.fr
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 16123 0 16123 0 0 35174 0 --:--:-- --:--:-- --:--:-- 35126
Le -o pour output nous permet de définir le chemin de sortie. Ici, c’est l’endroit où nous voulons stocker l’entête d’identification.
Préciser un port
Comme pour beaucoup d’autres outils, vous pouvez préciser un port. Le port par défaut utilisé par HTTP est le port 80 et le port utilisé par défaut par HTTPS est le port 443.
$ curl https://safecode.fr
$ curl https://safecode.fr:443
Les deux commandes ci-dessus ont donc pour retour le même résultat. Si le port HTTPS n’utilise pas le port par défaut, alors l’utilisation de url:<port>.
Si le port n’est pas 443 mais 444, la commande devient :
$ curl https://safecode.fr:444
De nombreux protocoles supportés
DICT, FTP, FTPS, Gopher, HTTP/1[10] (with HTTP/2 support), HTTP POST, HTTP PUT, HTTP proxy tunneling, HTTPS, IMAP, Kerberos, LDAP, POP3, RTSP, SCP, SMTP, SMB, FTP, SFTP, TFTP, Telnet
Si cette commande a attiré votre attention, la commande man est votre meilleur ami.
$ man curl
Laisser un commentaire