Утилитата за получаване и изпращане на данни по мрежата curl навърши 25 години. В чест на това събитие беше създадена нова значима версия cURL 8.0. Първото издание на предишната версия curl 7.x беше направено през 2000 година и оттогава кодовата база нарасна от 17 до 155 хиляди реда код, броят на командните опции достигна 249, внедрена е поддръжка за 28 мрежови протокола, 13 криптографски библиотеки, 3 SSH библиотеки и 3 библиотеки HTTP/3. Кодът на проекта се разпространява под лицензията Curl (вариант на лицензия MIT).
За HTTP/HTTPS утилитата предоставя възможност за гъвкаво оформяне на мрежов заявка с определяне на такива параметри, като Cookie, user_agent, referer и всякакви други заглавия. Освен HTTPS, HTTP/1.x, HTTP/2.0 и HTTP/3, утилитата поддържа изпращане на заявки, използващи SMTP, IMAP, POP3, SSH, Telnet, FTP, SFTP, SMB, LDAP, RTSP, RTMP и други мрежови протоколи. Паралелно с това се развива библиотеката libcurl, предоставяща API за използване на всички функции на curl в програми на такива езици, като C, Perl, PHP, Python.
Новото издание cURL 8.0 не съдържа радикални нововъведения или несъвместими промени в API и ABI. Промяната в номерацията е обусловена от желанието да се отбележи 25-годишнината на проекта и най-накрая да се премахне втората цифра от версията, която се натрупва вече повече от 22 години.
В новата версия са отстранени 6 уязвимости в обработчиците на протоколи TELNET, FTP, SFTP, GSS, SSH, HSTS, от които 5 са отбелязани като незначителни, а една с умерен риск (CVE-2023-27535, възможност за повторно използване на предишно създадено FTP свързване с други параметри, включително при несъответствие на идентификационните данни на потребителя). От промените, несвързани с отстраняването на уязвимости и грешки, се отбелязва само прекратяване на поддръжката на компилации на системи, за които липсват работещи 64-битови типове данни (за компилация сега е необходимо наличието на тип „long long“).
Скоро след изданието 8.0.0 беше пусната версия 8.0.1 с корекция на откритата по горещи следи грешка, довеждаща до аварийно прекратяване в някои тестови сценарии.
Източник: opennet.ru
