innerHTML, czyli najbardziej banalna furtka do XSS

Bardzo często popełnianym błędem, na który zwracam uwagę praktycznie w każdym kolejnym Weekly JavaScript Challenge, jest niewłaściwe wykorzystywanie innerHTML. Bardzo łatwo może to doprowadzić do wystąpienia podatności typu XSS! Ten wpis chciałem poświęcić tej właściwości oraz zagrożeniom, które płyną z jej nieprawidłowego wykorzystania. Będę analizował konkretny przykład kodu z nadesłanego rozwiązania i pokażę jak przeprowadzić prosty atak na ten kod. Zapraszam!

Kurs TypeScript – część 3

Ten wpis jest 4 częścią z 4 w kursie TypeScript

Kontynuuję serię wpisów na temat TypeScript. Pisząc poprzedni post złapałem się na tym, że dobijałem już do blisko 1800 słów. Uznałem, że to zdecydowanie za dużo jak na jeden wpis i stąd tak szybko kolejna część 😉 W tym odcinku mówię o zaawansowanych typach, aliasach i literałach. Dodatkowo poruszam również temat inferencji typów. Zapraszam do czytania 🙂 Zakładam, że czytelnicy są zaznajomieni z JavaScriptem, a w szczególności z konceptami dodanymi …

Kurs TypeScript – część 2

Ten wpis jest 3 częścią z 4 w kursie TypeScript

Poprzedni wpis na temat TypeScript cieszył się niemałym zainteresowaniem i wiele osób pisało do mnie z pytaniem, kiedy pojawi się kontynuacja. I oto ona! W tym artykule nauczymy się korzystać z klas, klas abstrakcyjnych i dziedziczenia. Dodatkowo będziemy implementować interfejsy i zobaczymy czym różnią się od klas abstrakcyjnych. Zapraszam do czytania! Zakładam, że czytelnicy są zaznajomieni z JavaScriptem, a w szczególności z konceptami dodanymi w ECMAScript 2015 takimi …

Dependency Injection w Angular 2

Ten wpis jest 5 częścią z 5 w kursie Angular 2

Angular 2 aktywnie korzysta ze wzorca projektowego Dependency Injection. Ten wpis poświęciłem wyłącznie implementacji DI w tym frameworku. Jest ona bardzo rozbudowana i niezwykle ciekawa, a jej dokładne poznanie pozwoli na lepsze zrozumienie wstrzykiwania zależności w Angularze oraz sprawi, że będziemy tworzyć aplikacje bardziej świadomie i łatwiej. Samemu tematowi Dependency Injection przeznaczyłem osobny wpis. Piszę tam o wzorcu projektowym, niezależnie od implementacji. …

Nowy font na GitHubie – font systemowy

Zauważyliście, że GitHub zmienił fonta? Zainteresowało mnie to, gdy zauważyłem, że teraz strona wygląda inaczej na OS X i inaczej na Windowsie. Po sprawdzeniu źródła okazało się, że GitHub korzysta teraz z domyślnego fonta systemowego, który zależy od użytkownika. Jak to jest zrobione? Font systemowy w CSS Jeśli zajrzymy do CSS–ów zobaczymy takie, ciekawe ustawienie fonta: font-family: -apple-system, BlinkMacSystemFont, „Segoe UI”, Roboto, Helvetica, Arial, …

TypeScript – część 1

Ten wpis jest 2 częścią z 4 w kursie TypeScript

„TypeScript – typowany nadzbiór JavaScriptu, kompilowany do czystego JavaScriptu” – głosi napis na stronie głównej typescriptlang.org. Używam go praktycznie codziennie, w różnych projektach, z różnymi technologiami. Od pewnego czasu, w dużej mierze za sprawą Angulara 2, ale nie tylko, TS zaczął zyskiwać sporą popularność i uznanie w społeczności webdeveloperów. W tym artykule zakładam, że czytelnicy są zaznajomieni JavaScriptem, a w szczególności z konceptami dodanymi w ECMAScript 2015 takimi jak …

Angular 2 i Redux

Ten wpis jest 4 częścią z 5 w kursie Angular 2

Otóż okazuje się, że Redux świetnie współgra z aplikacjami w Angular 2 i biblioteka ta jest bardzo często wykorzystywana razem z tym frameworkiem. Poprzednio opisywałem sposoby na komunikację pomiędzy komponentami sugerowane przez twórców Angulara, wszystkie miały jednak pewną wadę: Dobrze działały tylko w przypadku prostych scenariuszy. Użycie Reduksa znacznie upraszcza zarządzanie stanem nawet najbardziej złożonych aplikacji oraz umożliwia łatwą komunikację pomiędzy …

Komunikacja pomiędzy komponentami w Angular 2

Ten wpis jest 3 częścią z 5 w kursie Angular 2

Przed Wami trzecia część kursu Angular 2. W tym wpisie omawiam różne sposoby komunikacji pomiędzy komponentami na prostych przykładach. Angular 2 nie jest jeszcze gotowy na produkcję. W momencie powstawania tego wpisu najnowszą wersją tego frameworka była Release Candidate 4. Jest to wersja prawie gotowa do wydania, jednak minie jeszcze trochę czasu zanim całość się ustabilizuje, a pomiędzy wersjami RC-1, RC-2 i RC-3 pojawiły …

Własne komponenty w Angular 2

Ten wpis jest 2 częścią z 5 w kursie Angular 2

W poprzedniej części kursu Angular 2 omówiłem założenia frameworka, tworzenie nowego projektu, podstawy bindingów oraz wreszcie kod pierwszego komponentu. Pominąłem jednak kilka kwestii takich jak bindingi na własnych komponentach, pełna składnia bindingu dwukierunkowego, czy możliwość odwoływania się do referencji do obiektów na poziomie szablonów (brzmi skomplikowanie, ale nie jest!). Chciałbym teraz do tych kwestii wrócić. W tym celu odtworzę projekt, który poprzednio …