Utilitarul pentru transferul de date prin rețea curl a împlinit 25 de ani. Cu acest prilej a fost lansată o nouă versiune semnificativă, cURL 8.0. Prima versiune a vechii ramuri curl 7.x a fost lansată în anul 2000, iar de atunci baza de cod a crescut de la 17 la 155 de mii de linii de cod, numărul opțiunilor din linia de comandă a ajuns la 249, s-a implementat suport pentru 28 de protocoale de rețea, 13 biblioteci criptografice, 3 biblioteci SSH și 3 biblioteci HTTP/3. Codul proiectului este distribuit sub licența Curl (varianta licenței MIT).
Pentru HTTP/HTTPS, utilitarul oferă posibilitatea de a construi flexibil cereri de rețea, setând parametri precum Cookie, user_agent, referer și orice alte anteturi. Pe lângă HTTPS, HTTP/1.x, HTTP/2.0 și HTTP/3, utilitarul suportă trimiterea cererilor folosind SMTP, IMAP, POP3, SSH, Telnet, FTP, SFTP, SMB, LDAP, RTSP, RTMP și alte protocoale de rețea. Paralele se dezvoltă biblioteca libcurl, care oferă API pentru a accesa toate funcțiile curl în programe scrise în limbaje precum C, Perl, PHP, Python.
Noua versiune cURL 8.0 nu conține inovații radicale sau modificări incompatibile cu API-ul și ABI-ul. Schimbarea numerotării se datorează dorinței de a marca cei 25 de ani ai proiectului și de a elimina, în sfârșit, a doua cifră din versiune, care s-a acumulat timp de peste 22 de ani.
În noua versiune au fost eliminate 6 vulnerabilități în gestionarea protocoalelor TELNET, FTP, SFTP, GSS, SSH, HSTS, dintre care 5 au fost considerate minore, iar una are un nivel moderat de pericol (CVE-2023-27535, posibilitatea reutilizării unei conexiuni FTP anterioare cu alte parametri, inclusiv nesincronizarea acreditivelor utilizatorului). Printre modificările care nu sunt legate de eliminarea vulnerabilităților și a erorilor se numără doar încetarea suportului pentru compilarea pe sisteme care nu au tipuri de date pe 64 de biți funcționale (pentru compilare, este necesară existența tipului „long long”).
La scurt timp după lansarea versiunii 8.0.0, a fost lansată versiunea 8.0.1 cu o corectare a unei erori descoperite imediat, care ducea la închideri neașteptate în anumite scenarii de testare.
Sursa: opennet.ro
