REKLAMA

Programista 4/2021 (98) – wrzesień/październik 2021 – Zaprzyjaźnij się z kompilatorem – SPIS TREŚCI

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