Běhové prostředí Node.js je stále oblíbenější u týmů, které potřebují vytvářet dynamické webové aplikace na straně serveru. V současné době jej spravuje nadace OpenJS Foundation, má téměř 2 500 přispěvatelů a je nejrychleji rostoucím projektem s otevřeným zdrojovým kódem, který si doposud stáhlo více než 1 miliarda uživatelů.
Od svého vydání v roce 2009 nyní používá Node.js mnoho významných organizací k vytváření podnikových aplikací a zvyšování jejich výkonu. Jednou z nich je společnost PayPal, která po nasazení Node.js snížila dobu odezvy svých stránek přibližně o 35 %. Mezi další uživatele Node.js patří IBM, NASA, Uber, Netflix a dokonce i Microsoft.
Přestože se stává preferovaným jazykem pro vývoj webových serverů, uživatelé by si měli uvědomit, že existují licenční a bezpečnostní aspekty Node.js.
Jaké je licencování Node.js?
Node.js používá pro hlavní knihovnu permisivní licenci MIT. Licence MIT se vztahuje na všechny části modulu Node.js, které nejsou udržovány externě.
Další licence, které se vztahují na zbývající knihovny třetích stran, zahrnují licenci BSD s nulovou klauzulí a licenci ISC, přičemž kompletní licenční soubor je k dispozici zde.
Tyto licence umožňují komukoli software kdykoli používat, upravovat a šířit, přičemž se vyžaduje pouze uvedení autora a zároveň odškodnění přispěvatelů. Oproti licenci GNU GPL licence MIT nevyžaduje, aby vývojáři při redistribuci svého softwaru zpřístupňovali vlastní zdrojový kód.
Jaká jsou licenční a bezpečnostní rizika Node.js?
Node.js používá správce balíčků (npm), který má k dispozici více než 1 000 000 balíčků. Komunita vývojářů pro Node.js je jednou z nejproduktivnějších a do roku 2019 se platforma npm rozrostla o 250 %. Jednou z výzev pro vývojáře v oblasti zabezpečení Node.js je zajistit, aby každý balíček a všechny související závislosti používané ve výrobě dostávaly pravidelné aktualizace a záplaty.
Vývojáři musí často kontrolovat všechny závislosti balíčků, aby našli všechny nově objevené zranitelnosti. Při vytváření nových funkcí musí vývojáři zajistit, aby používali bezpečné balíčky, a před zveřejněním kódu opravit všechny známé zranitelnosti.
Kolik je licencování Node.js open source?“
Podniky si oblíbily licenční model Node.js, protože jim umožňuje rozvětvit kódovou základnu, vytvářet vlastní fragmenty na straně serveru a aktualizovat propojené balíčky pouze v případě potřeby. Permisivní licence dávají týmům možnost, aby si v budoucnu vytvořily vlastní kódovou základnu, na rozdíl od principu copyleft licence GNU GPL.
Z hlediska licencí musí vývojáři vědět, jaké softwarové licence jejich balíčky používají, protože na npm je k dispozici spousta balíčků pod licencí GPL. V některých případech budou vývojáři poskytovat stejný balíček pod komerční licencí, což by zabránilo spuštění klauzule o reciprocitě v GPLv3.
Jaké jsou výhody licenčního modelu Node.js?
Diskuse o povolených versus copyleftových licencích budou pokračovat, ale Node.js zřejmě dokazuje, že komerční zájmy nemusí bránit spolupráci. Pro týmy, které pracují v přísně utajovaných prostředích (jako NASA), se Node.js a ekosystém npm ukázaly jako cenný zdroj. Díky modelu, který umožňuje jednotlivým týmům rozhodnout, zda mají být všechny jejich zdrojové kódy k dispozici, nebo ne, poskytuje Node.js uživatelům maximální svobodu.
Mezi vývojářské výhody Node.js patří také:
- Nabízí řešení pro programování v jazyce JavaScript na straně serveru
- Zůstává vysoce škálovatelný v horizontálním i vertikálním směru
- Dává vývojářům k dispozici jediný programovací jazyk pro front-end i back-end aplikace
- Zvyšuje výkon aplikací díky neblokujícím I/O operacím
- Podporu od špiček v oboru se zástupci v Node.js Foundation
Můžete používat licencované balíčky Node.js v komerčním softwaru?“
Jakmile si tým stáhne a upraví Node.js, může kdykoli uplatnit autorská práva na svou verzi softwaru a použít na své vlastní dílo přísnější licenci.
Většina projektů Node.js zůstává open source a podniky jej používají pro frameworky, knihovny a nástroje. Pro všechny týmy, které používají balíčky ze zdrojů npm, platí, že v žádném z modulů nesmí být obsažena žádná vzájemná licence (pokud to není zamýšleno). Každý propojený balíček a modul by měl spadat pod licenci MIT nebo některou z licencí typu BSD, včetně licence ISC.
Jak používat licenci Node.js?“
Každá komponenta postavená na knihovně Node.js může při distribuci používat kteroukoli z dostupných softwarových licencí. Přispěvatelé dávají přednost používání permisivních licencí, protože to dává následným uživatelům svobodu rozhodovat o svém softwaru v budoucnu. Jakmile se tým začne spoléhat na jiné balíčky, bude muset zajistit, aby jeho práce byla v souladu s dalšími omezeními, která z těchto modulů vyplývají.
V systému npm existuje specifický příkaz pro přidání textu licence do všech souborů projektu. Vývojáři mohou zadat název licence a jméno autora, přičemž kompletní seznam kompatibilních licencí je k dispozici zde.
Jak Node.js řeší bezpečnostní rizika v balíčcích
Kdykoli vývojáři nebo bezpečnostní tým objeví novou zranitelnost, Node.js vydá verzi s bezpečnostní aktualizací. V některých případech bude vyžadována ruční oprava. Vývojáři musí často kontrolovat zranitelnosti svých balíčků pomocí příkazu audit, který poskytne doporučenou opravu bezpečnostní chyby.
Udržujte závislosti své kódové základny pomocí nástroje Snyk
Každý projekt, který běží ve výrobě, by měl podléhat pravidelnému auditu zranitelností a licencí všech závislostí.
Snyk pomáhá týmům skenovat všechny závislosti a zajistit, aby mohly spravovat dodržování licencí v rámci celého projektu. Vývojovým týmům Node.js může jasný dohled nad všemi balíčky a zajištění souladu s licencemi v každé fázi projektu pomoci zabránit tomu, aby se do kódové základny vplížily závažné problémy.
Chcete-li zjistit, jak může Snyk pomoci vašemu týmu spravovat dodržování licencí – naplánujte si ukázku ještě dnes.