Zapraszamy do zamówienia magazynu w >>prenumeracie<<. Miesięcznik jest dostępny w formie papierowej, PDF, EPUB i MOBI oraz AZW3. Do prenumeraty papierowej zawsze dołączamy wydania elektroniczne.
BIBLIOTEKI I NARZĘDZIA
Zaprzyjaźnij się z kompilatorem
Krótki przewodnik po flagach (>>więcej o tym artykule<<)
Zaawansowane metody optymalizacji mogą przyczynić się do generowania trudnych do wykrycia błędów, jeśli kod wejściowy nie jest napisany zgodnie ze standardem. Wykrycie źródła nieprawidłowości może być trudne i zależne od wielu czynników, np. wersji kompilatora i stopnia optymalizacji. Część problemów można wyeliminować, korzystając z rozbudowanej diagnostyki, jaką oferują kompilatory.
Dominik Adamski
STB: jednoplikowe, otwarte biblioteki dla języków C i C++ (>>więcej o tym artykule<<)
Jednoplikowe biblioteki STB stanowią ciekawą alternatywę dla klasycznych (wieloplikowych i prekompilowanych) bibliotek dla języków C i C++. Stosowane tam eleganckie i pragmatyczne rozwiązanie można też łatwo zaadaptować do własnych projektów. Niniejszy artykuł ma na celu zapoznać czytelnika z koncepcją bibliotek jednoplikowych i zachęcić do korzystania z nich.
Rafał Kocisz
PROGRAMOWANIE ROZWIĄZAŃ SERWEROWYCH
Projektowanie usług w Kotlin i Spring Boot w pigułce (>>więcej o tym artykule<<)
W tym artykule za pomocą narzędzia Spring Boot oraz języka Kotlin utworzymy prostą usługę REST. Mam nadzieję, że zaprezentowana tu treść będzie przydatna zarówno dla początkujących programistów, jak również i tych pracujących na co dzień z językiem Java czy Groovy.
Ze względu na mnogość poruszanych tu wątków niektóre zagadnienia zostaną omówione fragmentarycznie.
Łukasz Kokot
PROGRAMOWANIE APLIKACJI WEBOWYCH
API Platform – szybkie tworzenie przystępnego REST API w PHP
Jeżeli stoisz przed zadaniem polegającym na stworzeniu webowego interfejsu programistycznego i posiadasz podstawowe doświadczenie w języku PHP, to doskonale trafiłeś/aś. API Platform to jedno z najlepszych i najprostszych narzędzi do przygotowania nowoczesnego, ustandaryzowanego oraz udokumentowanego API. Co więcej, jest to rozwiązanie darmowe z otwartym kodem źródłowym i możliwością dowolnego wykorzystania w komercyjnych projektach.
Adrian Chojnicki
BEZPIECZEŃSTWO
Przegląd błędów w CPythonie
W tym artykule przyjrzymy się wybranym błędom bezpieczeństwa najpopularniejszej implementacji Pythona – CPython – które zostały zgłoszone na oficjalnym bugtrackerze: bugs. python.org. Co istotne, mankamenty te nadal nie zostały naprawione, należy więc mieć je na uwadze podczas pisania kodu oraz (jak się przekonamy) używania samego interpretera – na przykład na serwerach. Warto też pamiętać o możliwości skorygowania tych błędów, jeśli zależy nam na rozwoju języka Python.
Dominik 'DISCONNECT3D' Czarnota
Wstrzykiwanie szablonów jako nieoczywista pułapka na programistę
Główne przesłanie idei KISS przyświeca większości bibliotek i frameworków programistycznych. Zakłada ono bowiem, że należy z barków programisty zdjąć ciężar komplikacji i do maksimum uprościć pisany kod. Nadmierna zawiłość nigdy nie była sprzymierzeńcem łatwości utrzymania, dalszego rozwoju, a przede wszystkim bezpieczeństwa projektów. Z tego względu powtarzalne czynności związane z łączeniem danych pochodzących od użytkownika (czyli z założenia niebezpiecznych), takie jak budowanie zapytań do baz danych, zyskały wsparcie funkcji bibliotecznych (tu: „prepared statements”). Dzięki temu o pomyłkę dużo trudniej, a i podatności polegające na wstrzykiwaniu kodu (np. do zapytań SQL) zostały znacząco ograniczone.
Foxtrot_Charlie
XS-Leaks: sztuka subtelnych wycieków danych
Od wielu lat wiadomo, że najpoważniejszą podatnością pojawiającą się w świecie frontendu aplikacji webowych jest Cross-Site Scripting (XSS). Istnieją też inne, dobrze znane podatności, takie jak Cross-Site Request Forgery czy ataki związane z eksfiltracją danych przez CSS. Ostatnio coraz głośniej robi się jednak o nowym graczu w tym światku: mowa tu o Cross-Site Leaks (skracane zwykle do XS-Leaks). W tym artykule opowiemy o tym, czym XS-Leaks jest i skąd może się wziąć w aplikacji.
Michał Bentkowski
Z ARCHIWUM CVE
Błąd uwierzytelnienia w OpenBSD
OpenBSD stawia sobie za cel bycie najbezpieczniejszym systemem operacyjnym na rynku. Implementuje on wiele ciekawych metod mitygacyjnych, m.in. jako pierwszy domyślnie wspierał ASLR (Address space layout randomization) i PIE (Position-independent executables). Jemu również zawdzięczamy projekty takie jak sudo czy OpenSSH. Gdy w 2019 roku została opublikowana luka bezpieczeństwa CVE-2019-19521, wiele osób przecierało oczy z niedowierzaniem, że taki błąd uwierzytelnienia może pojawić się w systemie operacyjnym kładącym tak duży nacisk na bezpieczeństwo.
Mariusz Zaborski
PLANETA IT
Programowanie napotyka cyberbezpieczeństwo
Świat IT gna przed siebie niczym legendarny już Usain Bolt, nie zwalniając tempa ani na moment. Na przełomie ostatnich kilkunastu lat programistom udało się zinformatyzować praktycznie każdą dziedzinę życia codziennego. To w dużym stopniu dzięki nim Elon Musk mógł zbudować potęgę Tesli i SpaceX, a urządzenia typu IoT zagościły pod nasze strzechy. Nie sposób się nie zgodzić, że to właśnie my, programiści, jesteśmy cichymi bohaterami naszych czasów. Tak szybko rozwijająca się informatyzacja przy niskim wzroście liczby specjalistów zaczęła powodować jednak problemy natury cyberbezpieczeństwa. W jaki sposób, jako programiści, możemy minimalizować zagrożenia bezpieczeństwa napotykane na naszej wirtualnej drodze?
Michał Zbyl
PRAWO
Jak rozumieć pojęcie: „działalność twórcza w zakresie […] programów komputerowych”?
Krajowa Informacja Skarbowa potwierdziła, że tworzenie programów komputerowych nie polega wyłącznie na pisaniu kodu źródłowego. Zgodnie z tym stanowiskiem m.in. UX/UI Designerzy mogą być obejmowani podwyższonymi 50 proc. kosztami uzyskania przychodów.
Jakub Szkutnik