this w JS — czyli kilka słów o kontekście wywołania funkcji

Czy kiedykolwiek spotkałaś/eś się z błędem w aplikacji, który wynikał z tego, że this było ustawione na coś innego, niż się spodziewałaś/eś? Jeśli tak, to nie jesteś jedyna/y. W swojej karierze programisty miałem okazję występować w roli rekrutera na ponad 160-ciu rozmowach kwalifikacyjnych na stanowiska front-endowe. Jeśli nauczyło mnie to jednego, to tego, że odpowiedź na pytanie „na co wskazuje this?” sprawia największą trudność nie tylko kandydatom, …

Symlink, zip i upload plików – łatwo padniesz łupem hackera

Bardzo często ścieram się z sytuacjami gdzie ktoś kopiuje kod z Internetu do aplikacji bez zweryfikowania co ten kod do końca robi… Zresztą: Kto nie wykorzystał gotowca ze StackOverflow bez czytania opisu i komentarzy niech pierwszy rzuci kamień 😉 Czasem jednak pozornie niewinne fragmenty kodu mogą doprowadzić do katastrofy. Weźmy prosty przykład: Upload plików. Wszystko działa, wszędzie prawidłowa sanityzacja i obsługa błędów… …

Czytelny kod

Pisanie czytelnego kodu sprawia wielu programistom ogromne kłopoty. Ta uwaga bynajmniej nie dotyczy wyłącznie osób początkujących, ale niestety także tych z latami doświadczenia. Z czego wynika problem? Jak sprawić, aby pisany kod był bardziej czytelny i przystępny? Ostatnio mam okazję prowadzić webinary, warsztaty i szkolenia. Dodatkowo od dłuższego czasu staram się kontynuować inicjatywę Weekly JavaScript Challenge. Dzięki …

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. Ten wpis chciałem poświęcić tylko i wyłącznie 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! XSS Atak, który tutaj pokażę nazywa się XSS. …

3. Weekly JavaScript Challenge

Zakończył się trzeci Weekly JavaScript Challenge. Grupa zyskuje co raz większą popularność, zapisały się do niej już 494 osoby. Dziękuję wszystkim, którzy rozwiązują zadania i komentują pod rozwiązaniami innych osób! Weekly JavaScript Challenge to grupa na Facebooku. Celem jej istnienia jest wspólna nauka JavaScriptu poprzez rozwiązywanie prostych zadań i wzajemną ocenę kodu. Pamiętajcie, że poprzednie zadania można rozwiązywać …

2. Weekly JavaScript Challenge

Dobiega końca drugi Weekly JavaScript Challenge, którego jestem organizotorem. Jeśli jeszcze nie wiesz o co chodzi, to już wyjaśniam! Jest to grupa na Facebooku, na której mniej-więcej raz w tygodniu pojawia się nowe zadanie do wykonania w JavaScripcie. Celem istnienia grupy jest wzajemna pomoc i nauka JS-a. A wszystko to pro bono, dla powszechnego dobra i całkowicie za darmo. Zachęcam wszystkich początkujących programistów do spróbowania swoich …

1. Weekly JavaScript Challenge

Jakiś czas temu zainspirowałem się dość mocno Facebookową grupą Weekly WebDev Challenge i postanowiłem utworzyć grupę siostrzaną: Weekly JavaScript Challenge. Jest to miejsce, w którym średnio raz w tygodniu będę wrzucał nowe zadanie do wykonania. Celem jest wspólna nauka JavaScriptu, code review i wzajemna pomoc. Kilka liczb… Pierwszy Weekly JavaScript Challenge dobiegł końca. Na początek muszę powiedzieć, że jestem …

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 …