Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!

10 powodów, dla których warto znać JavaScript (by Gynvael Coldwind)

10 marca 2026, 13:17 | Aktualności | komentarze 3

JavaScript to język wyjątkowy – świetny dla początkujących i obecny niemal wszędzie w Internecie: zarówno w przeglądarkach, na backendzie, jak i w aplikacjach desktopowych, jako język skryptowy w niektórych aplikacjach – i tak dalej. Jego składnia jest przystępna i trochę podobna do C/C++, Javy czy PHP, a brak silnego typowania ułatwia start. Co więcej, JavaScript od lat jest w topce popularności używanych języków programowania, a wielu programistów zaczyna właśnie od niego lub prędzej czy później dodaje go do swojej kolekcji.

Dla specjalistów od cyberbezpieczeństwa, w szczególności mających cokolwiek wspólnego z technologiami webowymi, znajomość JavaScript jest wręcz niezbędna. Nowoczesne aplikacje są bardzo złożone, a ich analiza czy eksploitacja błędów często wymaga dobrej znajomości tego języka. Ale (konkretnie!) dlaczego warto go poznać i czy faktycznie przyda się Wam w pracy (i po pracy)? Poniżej przedstawiam subiektywny przegląd powodów, oparty na moich własnych doświadczeniach.

JavaScript ma specyficzny model wykonania i sporo historycznych „dziwactw”, które potrafią zaskoczyć. Dlatego wraz z sekurakiem przygotowaliśmy 4-odcinkowe, darmowe szkolenie, które pomoże Wam zrozumieć podstawy, uniknąć typowych błędów i pewnie postawić pierwsze kroki w programowaniu w języku JavaScript.

Możecie zapisać się zupełnie bezpłatnie 🙂

Zapisy: js.sekurak.pl

Szczególnie zachęcamy do wyboru biletu JavaScript Master. Specjalnie dla Was mamy 70-procentową zniżkę. Bilet (jedyne 295 zł brutto po zniżce) daje dostęp zarówno do szkolenia Wstęp do programowania w JavaScript, jak i do pełnego kursu (10 sesji) Praktyczny JavaScript – 10 projektów krok po kroku, który rozpoczyna się już w kwietniu.

Startujemy już 17 marca!

Po co mi ten cały JavaScript?

Pretekstów do znajomości tego języka jest bardzo dużo, ale w tytule wspomniałem o modnych ostatnio „10 powodach” (+ obligatoryjnie musi też być buffer overflow), więc… w losowej kolejności przechodzimy do konkretów.

Tworzenie nowoczesnych stron/serwisów internetowych – frontend

Zaczynając od oczywistych oczywistości: podczas tworzenia nowoczesnych stron internetowych używa się niezwykle dużo języka JavaScript. O ile proste „strony-wizytówki”faktycznie mogą go nie potrzebować, o tyle w jakimkolwiek większym przedsięwzięciu język ten bardzo zwiększa zarówno możliwości, jak i dynamiczność oraz interaktywność strony. W szczególności umożliwia on tworzenie stron, które bez przeładowywania się dalej komunikują się z serwerem (tzw. SPA, czyli Single-Page Application).

Wystarczy popatrzyć na aplikacje webowe typu Google Spreadsheet albo Discord, albo serwisy typu Google Maps czy Spotify, żeby docenić przydatność tego języka.

Tworzenie nowoczesnych stron/serwisów internetowych – backend

O ile JavaScript rozpoczął jako język stricte przeglądarkowy, to obecnie jest już również pełnoprawnym językiem backendowym (tj. działającym po stronie serwera webaplikacji) – i jest zdecydowanie bardzo popularny w tym wykorzystaniu!

Co ciekawe, pomysł nie jest specjalnie nowy. Przykładowo, już w latach dwutysięcznych istniały serwisy internetowe oparte na JavaScript i zaimplementowany w Javie silnik Rhino. Trochę więcej serwerowego JavaScriptu (a w zasadzie jego dialektu – JScriptu) było również w technologiach Microsoftu, w szczególności Active Server Pages, choć nadal niespecjalnie dużo.

JS po stronie serwera był na tyle rzadki, że informacja o tym, że „z serwisu XYZ wyciekł kod JavaScript”, budziła niedowierzanie w dwóch krokach: Najpierw, że ktoś pisze o tym, że JavaScript – ten frontendowy JavaScript – wyciekł! „Przecież JS wysyła się przeglądarce, więc jasne jest, że każdy widzi kod w JS – on jest publiczny”. A potem – niedowierzanie, że ktoś użył JavaScriptu na backendzie.

Backend w JS prawdziwą mainstreamową popularność zdobył jednak dopiero wraz z nadejściem Node.js – opartego na V8 (silnik JS z przeglądarek Chromium/Chrome) serwerowego środowiska wykonania JS.

Analiza bezpieczeństwa dużych współczesnych aplikacji webowych

Popularność języka programowania oznacza, że osoby zajmujące się bezpieczeństwem oprogramowania muszą go dobrze znać, by potrafić znaleźć błędy. W przypadku bezpieczeństwa aplikacji webowych JavaScript nie jest opcjonalny – jest po prostu wymagany.

W końcu, jeśli ktoś pisze lub generuje (2026 🤷) kod, to dobrze by było, żeby ktoś go przejrzał.

Co ciekawe, istnieje kilka rodzajów błędów, które spotyka się w zasadzie tylko w aplikacjach stworzonych w języku JavaScript. Dobrym przykładem jest tzw. Prototype Pollution.

Eksploitacja XSS i innych błędów webowych

<script>alert(1)</script> to dopiero początek drogi. Istnieje sporo błędów webowych, których eksploitacja wymaga solidnej znajomości zarówno środowiska przeglądarkowego, jak i właśnie języka JavaScript.

Analiza i poprawianie kodu AI/LLM, gdy ten się zablokuje

AI generuje coraz więcej kodu. Kod ten jest niestety bardzo losowej jakości – czasem się uda i błędów nie ma, a czasem jest bardzo źle. AI jest przydatnym narzędziem, ale aby faktycznie móc zaufać, że kod został wygenerowany poprawnie, trzeba go po prostu przeanalizować i poprawić. Jest to w szczególności istotne w przypadkach, gdy AI „wpadnie w pętlę” i nie umie sobie poradzić z naprawieniem (czasem bardzo prostego) błędu.

Tworzenie gier

JavaScript – jak i cała technologia webowa – jest zaskakująco przyjaznym środowiskiem do tworzenia prostych gier komputerowych. A w połączeniu z WebGL również bardziej skomplikowane gry 2D/3D mogą zawitać do świata przeglądarek.

Przykładowo, oba zrzuty ekranów w tej sekcji pochodzą z bardzo unikatowych gier, tj. Google Hackceler8 2021 i 2022. Na pierwszy rzut oka obie produkcje mogły wydawać się zwykłymi grami platformowymi z elementami zagadek logicznych. Z jakiegoś powodu jednak nie dało się ich przejść… przynajmniej w normalny sposób. 😉

W rzeczywistości Hackceler8 to finały Google CTF – jednych z najbardziej hardkorowych zawodów Capture The Flag w ciągu roku – a publikowane na nich gry są platformami, z którymi muszą zmierzyć się najlepsi gracze CTF-owi z całego świata. W przypadku tych dwóch gier – obu stworzonych m.in. przeze mnie we frontendowym+backendowym JavaScript – gracze mieli niecałe 2 godziny na znalezienie glitchy/błędów w grach i wykorzystanie ich w taki sposób, by grę jednak dało się ukończyć.

Tworzenie aplikacji desktopowych

JavaScript dotarł również na desktopy, zarówno za sprawą aplikacji „zbundlowanych” z przeglądarką (np. za pomocą frameworku Electron), jak i natywnych bardzo popularnych frameworków typu Qt. Przykładowo, wspomniany Qt wykorzystuje JavaScript w plikach QML, opisujących wygląd i zachowanie interfejsu aplikacji.

Skryptowanie aplikacji

Różne aplikacje miewają różne wbudowane języki skryptowe – i czasem takim językiem jest właśnie JavaScript! Zaczynając od samych przeglądarek (rozszerzenia) i aplikacji webowych typu pakiet biurowy od Google (menu Extensions → Apps Script), przez pakiet biurowy od Microsoft, pakiet od Adobe (ExtendScript jest dialektem JavaScriptu), środowisko programistyczne Visual Studio Code, aż do mniejszych aplikacji – jak popularny „fiszkowy” program Anki.

Zaskakująco, również w inżynierii wstecznej, w której dominuje jednak Python, pojawiły się programy oferujące JavaScript – np. popularne narzędzie do instrumentacji Frida.

A pewne rzeczy czasem jest szybciej oskryptować, niż robić – raz, drugi, setny – ręcznie.

Język skryptowy we własnych programach

Jeśli potrzebujemy jakiegoś języka skryptowego w naszej aplikacji, to współcześnie JavaScript jest niezłym wyborem – bardzo dużo ludzi go zna, jest prosty do nauki i w zasadzie wszędobylski. Istnieje sporo bibliotek, typu QuickJS, które umożliwiają łatwą integrację aplikacji napisanych w innych językach z JavaScriptem.

Analiza malware’u w JavaScript

Popularność JavaScript (jak i dialektów typu JScript) sprawia, że pojawiło się również złośliwe oprogramowanie wykorzystujące ten właśnie język. Jeśli zajmujemy się inżynierią wsteczną malware’u, to prędzej czy później również poważnie zobfuskowany kod w języku JavaScript wpadnie w nasze ręce.

Capture The Flag

Jeśli lubicie CTF-y, to zapewne wiecie, że JS pojawia się na nich w bardzo różnych formach. Od mniej lub bardziej prostych „reverseme”, przez zadania z programowania, po hardkorowe eksploitacje XSS-ów.

Jeśli już czujecie się silni w JavaScripcie, zachęcam do spróbowania swoich sił z dwoma moimi zadaniami z zawodów Dragon CTF:

gynvael.coldwind.pl/starbase.html

gynvael.coldwind.pl/starblind.html

Bookmarklety

Bookmarklet to po prostu krótki skrypt w JS przechowywany w naszych zakładkach. Taki skrypt – uruchamiany po kliknięciu – może np. usunąć całe stylowanie ze strony, wylistować wszystkie obrazki czy lepiej wyeksponować istotne części artykułu. Zaletą bookmarkletów jest to, że są one bardzo proste do stworzenia (ot, jednolinijkowy skrypt w JS, bez masy dodatkowych –manifestów”tp., jak w rozszerzeniach do przeglądarek). Wadą jest to, że są one bardzo proste – ale nadal bywają przydatne.

I na koniec najważniejsze… JS jest po prostu fajny!

JavaScript sam w sobie jest bardzo ciekawym językiem i programowanie w nim to całkiem przyjemne zajęcie! Z jednej strony, ma pewne dziwne cechy, które przetrwały jeszcze z lat 90. XX w. A z drugiej, to całkiem nowoczesny i ciągle rozwijany język. Wszystko to sprawia, że poznawanie szczegółów tego, jak działa, może dać sporo frajdy.

Podsumowanie, czyli kto powinien znać ten język

Najprościej napisać, że warto, aby znały go wszystkie osoby zajmujące się programowaniem okołowebowym lub związane z cyberbezpieczeństwem (które chcą skuteczniej analizować i testować aplikacje webowe), a także stawiające pierwsze kroki w programowaniu i chcące zacząć od języka obecnego wszędzie w Internecie.

Na pewno polecałbym znajomość JS webmasterom znającym już HTML i CSS, którzy chcą zrobić kolejny krok i dodać JavaScript do swojego arsenału, oraz adminom i devopsom, którzy potrzebują podstaw języka JavaScript do automatyzacji lub integracji z narzędziami webowymi.

Solidne podstawy na pewno przydadzą się osobom, które planują zostać full-stack deweloperami i potrzebują solidnego startu w JavaScripcie. Oczywiście zachęcam również studentów i kandydatów na studia informatyczne, którzy chcą nabrać pewności w programowaniu przed zajęciami. A także każdego, kto chce zrozumieć, jak działają współczesne strony i aplikacje internetowe.

Nie da się ukryć, że nauka programowania w JS jest drogą najeżoną pułapkami. Zapraszam więc do wybrania się w podróż ze mną w roli przewodnika – podczas darmowego szkolenia, które startuje już 17 marca, wprowadzę Was w świat JS krok po kroku, wskazując zarówno ciekawostki, jak i czyhające pułapki. Będę Was również zachęcał do praktyki, a w szczególności do rozwiązywania dodatkowych zadań, przygotowanych z myślą o przetrenowaniu tego, co zobaczycie podczas spotkań. I będzie to dopiero start ciekawej przygody 🙂

Więcej o JavaScript już 17 marca. Wbijajcie na nasze szkolenie :-)

Zapisy: js.sekurak.pl

Gynvael Coldwind

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Jak zwykle klasa artykuł od Gynvaela.

    Odpowiedz
  2. Santos

    Czy mogę prosić o uzupełnienie linków do części 3. i 4. szkolenia na “tajnej” stronie mojego zamówienia (nr [OCENZUROWANO]). Dwie pierwsze części są super i narobiliście mi apetytu na ciąg dalszy, a tu niestety brak linków :( Z góry dziękuję i serdecznie pozdrawiam :)

    Odpowiedz

Odpowiedz na Santos