Technologiczne, Gadżety, Telefony Komórkowe, Pobieranie Aplikacji!

Stephen Rees-Carter o swojej podróży jako Laravel…

Stephen Rees-Carter o swojej podróży jako Laravel…

Przez całą drogę z Brisbane w stanie Queensland DreamHost rozmawia z nauczycielem bezpieczeństwa Laravel, Stephenem Rees-Carterem. Stephen jest konsultantem ds. bezpieczeństwa specjalizującym się w audytach bezpieczeństwa witryn Laravel i PHP.

Oprócz tego, że jest konsultantem ds. bezpieczeństwa, Stephen organizuje także różne warsztaty i szkolenia dotyczące bezpieczeństwa dla zespołów programistycznych. Nauki te skupiają się na programistach, aby myśleli jak eksperci techniczni, aby pomóc im napisać bezpieczny kod i zidentyfikować słabe punkty, które mogą wykorzystać hakerzy. Stephen przemawia także na konferencjach poświęconych bezpieczeństwu, a w wolnym czasie tworzy biuletyny.

Shahzeb: Witaj Stephen, dziękuję za poświęcenie czasu na ten wywiad. Zanim zaczniemy, czy możesz nam powiedzieć trochę o sobie, aby nasi czytelnicy mogli Cię lepiej poznać?

Stefan: Jasne. Nazywam się Stephena Reesa-Cartera i mieszkam w Brisbane w Australii. Jestem wielkim fanem Tolkiena – filmy Władca Pierścieni są, moim zdaniem, najlepszymi filmami, jakie kiedykolwiek powstały – i w większości rzeczy, które robię, znajdziesz odniesienia do Tolkiena.

Jestem programistą, odkąd w mojej szkole średniej dodano klasę „projektowanie i tworzenie oprogramowania”. Poszedłem na uniwersytet, studiowałem inżynierię oprogramowania i dostałem pierwszą pracę jako programista pracując z Zend Framework (1) u lokalnego dostawcy usług hostingowych.

Znajomy zatrudnił mnie do swojej firmy zajmującej się produktami zabezpieczającymi 10 lat temu i to zapoczątkowało moją podróż w kierunku uczenia się i pokochania bezpieczeństwa. Od tego czasu spędziłem rok na czyszczeniu zaatakowanych przez hakerów witryn WordPress pod adresem Wordfenceukończył dwa certyfikaty bezpieczeństwa (Security+ i CEH), a niedawno przeszedł z pełnoetatowego programisty do konsultanta ds. bezpieczeństwa.

Na początku roku uruchomiłem moją firmę zajmującą się audytami bezpieczeństwa Laravel i testami penetracyjnymi i od tego czasu spędziłem wiele godzin pracy czytając kod innych osób i próbując włamać się do ich aplikacji. To świetna zabawa!

Shahzeb: Czy możesz podzielić się swoją podróżą z Laravelem? Jakieś doświadczenia ze swojej kariery, które uważasz za interesujące i którymi chciałbyś się podzielić z naszą publicznością?

Stefan: Po raz pierwszy usłyszałem o Laravel od znajomego, z którym pracowałem w 2013 roku. Byliśmy na linux.conf.au w Canberze i wspomniał, że bawi się nowym frameworkiem o nazwie „Laravel”, który może mi się spodobać. W tamtym czasie uważałem Zend Framework za swój ulubiony framework, ale ZF2 został niedawno wypuszczony i doświadczenia programistów były absolutnie okropne – w ogóle nie byłem z niego zadowolony.

I tak pojawił się nowy framework o nazwie Laravel – wypróbowałem nadchodzącą wersję 4 i bardzo mi się spodobała. Ułatwiło mi to życie jako programisty, a to było dla mnie ważne.

Od tamtej pory trzymam się Laravela, ponieważ sprawia, że ​​tworzenie oprogramowania jest przyjemne i to wpływa na moje wybory przez całą moją karierę. Nie tylko pod względem frameworków, ale także wzorców projektowania kodu i narzędzi.

Jeśli masz wybór pomiędzy przestrzeganiem żmudnych i rygorystycznych „najlepszych praktyk” lub elegancko prostymi, ale nie „najlepszymi praktykami”, wybierz metodę, która sprawia Ci przyjemność i dostosuj ją do własnych potrzeb. Właśnie dlatego używam Laravela, dlaczego używam niektórych fasad, a nie innych i dlaczego używam Windows 11 z WSL2. Wszystkie te wybory sprawiają, że kocham rozwój.

Dlatego też przerzuciłem się na bezpieczeństwo. Bezpieczeństwo zawsze mnie fascynowało (myślę, że zaczęło się to wcześnie od zamiłowania do łamigłówek i magii), a z biegiem lat, gdy pojawiały się możliwości skupienia się bardziej na stronie bezpieczeństwa w rozwoju, wybierałem tę ścieżkę do eksploracji, ponieważ odkryłem, że to ciekawe i przyjemne.

Shahzeb: Czy był jakiś szczególny powód, dla którego zdecydowałeś się pracować z Laravelem zamiast innymi dostępnymi frameworkami? Jakie znaczenie ma dla Ciebie używanie Laravela?

Stefan: Jak już mówiłem, wybrałem Laravel, ponieważ sprawiał, że tworzenie oprogramowania było przyjemne w czasach, gdy miałem trudności z wykorzystaniem istniejących narzędzi, które posiadałem. To jest siła Laravela – nieustannie dąży do tego, aby rozwój był przyjemny. Kiedy siadam do pisania kodu, chcę cieszyć się tym doświadczeniem i mieć poczucie, że moje narzędzia mi pomagają, a nie walczą ze mną.

Kolejnym aspektem Laravela, który uwielbiam, jest wrodzona znajomość frameworka – pracowało nad nim tak wiele osób, że istnieje wiele drobnych poprawek i funkcji, które rozwiązują wiele skrajnych przypadków, których normalnie nawet nie brałeś pod uwagę.

Ułatwia to życie programisty, ponieważ nie musisz się martwić o przypadki brzegowe – i to samo dotyczy bezpieczeństwa. Jest tak wiele subtelnych funkcji bezpieczeństwa, że ​​programiści nie posiadający wiedzy na temat bezpieczeństwa naprawdę łatwo mogą stworzyć bezpieczną aplikację.

Shahzeb: Stworzyłeś Bezpieczeństwo Laravela in Depth, bonus dla programistów Laravel. Jak wpadłeś na pomysł?

Stefan: Laravel Security in Depth powstał, gdy przygotowywałem się do wygłoszenia wykładu na Laracon w Internecie we wrześniu 2021. W tym czasie miałem przerwę w pracy ze względu na wypalenie zawodowe i zastanawiałem się, co chcę dalej robić.

Świetnie się bawiłem, przygotowując moje wystąpienie i naprawdę chciałem zrobić więcej, aby uczyć programistów. Zastanawiałem się nad napisaniem kursu lub książki, ale wszyscy to robią, a ja chciałem spróbować czegoś nieco innego… więc zdecydowałem się uruchomić płatną listę mailingową, której celem było nauczenie programistów Laravela o bezpieczeństwie poza moimi wykładami.

Shahzeb: Co skłoniło Cię do stworzenia strony internetowej poświęconej bezpieczeństwu Laravel?

Stefan: Bezpieczeństwo jest tematem niedocenianym w społecznościach programistów, a zwłaszcza społeczności Laravel. Jest to częściowo wina Laravela, który jest tak bezpieczny od razu po wyjęciu z pudełka – programiści często myślą, że nie muszą się tym martwić, ponieważ framework sobie z tym poradzi – ale nadal jest to niezwykle ważne. Chciałem więc zmienić sposób myślenia i pomóc programistom pomyśleć o bezpieczeństwie i sposobach pisania bezpiecznego kodu.

Shahzeb: Jak myślisz, jakie są główne korzyści, jakie programiści czerpią ze strony internetowej Laravel Security in Depth?

Stefan: Najważniejszą rzeczą, którą chcę przekazać, jest miłość do bezpieczeństwa. Staram się, aby każdy e-mail był zabawny i interesujący, i szukam najlepszego sposobu na nauczanie tematu, w którym ludzie nie przestaną się nudzić i nie stracą zainteresowania. Właśnie dlatego stworzyłem celowo podatną na ataki witrynę demonstracyjną dla Laravel Security in Depth.

Podczas nauczania o luce w zabezpieczeniach, np Skrypty między witrynami (XSS)znacznie łatwiej jest sobie z tym poradzić, jeśli potrafisz samodzielnie wykorzystać tę lukę, dlatego przygotowałem serię wyzwań, które czytelnicy mogą wykonać, aby dowiedzieć się, jak działa XSS – ale przeprowadzając prawdziwe ataki XSS we własnych przeglądarkach.

Shahzeb: Przez lata pracowałeś nad wieloma pobocznymi projektami. Co czytelnicy powinni wiedzieć o wszystkich rzeczach, które obecnie robisz w Laravel?

Stefan: Poza audytami bezpieczeństwa Laravel i listą mailingową mam trzy główne projekty:

Pierwsza to WithExtraVeg, firma mojej żony. Jest wegańską dietetyczką, która zapewnia plany posiłków i pomoc żywieniową rodzinom wegańskim. Zajmuję się techniczną stroną firmy oraz buduję i utrzymuję system planów posiłków.

Jeden z dwóch pozostałych projektów jest technicznie publiczny, chociaż jest na bardzo wczesnym etapie i jeszcze nie nadaje się do użytku. Buduję zestaw narzędzi typu open source do sprawdzania bezpieczeństwa witryn i kodu PHP. Moim zamiarem jest zamknięcie wszystkich skryptowalnych fragmentów przepływu pracy podczas audytu bezpieczeństwa w jednym narzędziu. Jestem pewien, że znajdziesz, jeśli jesteś zainteresowany. 😉

Mój trzeci to tajny projekt, który mam nadzieję wystartować w ciągu najbliższych kilku miesięcy. (Wskazówka: dotyczy edukacji programistów).

Shahzeb: Co skłoniło Cię do zostania programistą stron internetowych Laravel i konsultantem ds. bezpieczeństwa? Kim byli Twoi mentorzy i inspiracje w tej podróży?

Stefan: Samo doświadczenie kodowania w Laravel przyciągnęło mnie do społeczności, chociaż skłamałbym, gdybym powiedział, że to był jedyny wpływ. Dayle Rees i Jeffery Way (tj Laracasty) to dwa największe czynniki, które wywarły na mnie duży wpływ na moje początki w Laravelu, zwłaszcza nauczanie przez Jeffery’ego eleganckiego kodu i przyjęcie projektów związanych z Fasadami – zamiast trzymania się „najlepszych praktyk”.

Miałem też fantastycznego menedżera w jednej z moich prac, który codziennie rzucał mi wyzwania, abym napisał lepszy kod – co zmusiło mnie do zastanowienia się nad „dlaczego” moich wyborów związanych z kodowaniem.

Największy wpływ na moją podróż w dziedzinie bezpieczeństwa ma Troya Hunta. Na początku mojej przygody z bezpieczeństwem uczestniczyłem w jego warsztatach „Najpierw włam się” i bardzo mi się podobało. Pomysł, że jeśli wiesz, jak hakować i wykorzystywać luki, będziesz lepiej bronić swoich rzeczy, zmienił zasady gry.

Shahzeb: Zauważyłem, że lubisz przemawiać na konferencjach Laracon. Na jaki temat będziecie rozmawiać w tym roku? I dlaczego?

Stefan:
Szczerze nie mam pojęcia! 🤣

Podczas mojego pierwszego wykładu z Laraconem włamałem się do aplikacji, a drugim włamałem się do serwera stojącego za aplikacją – jest to kontynuacja mojego pierwszego wykładu. Gdzie więc dalej zabrać się za serial? Rozważałem rozważenie czegoś takiego jak Vapor (tj. hackowanie bezserwerowe), ale nie wiem wystarczająco dużo o bezserwerowym, aby wiedzieć, co jest możliwe w tej dziedzinie. Może zamiast tego napiszę prequel i zhakuję programistę?

Shahzeb: Jaki typ hostingu wolisz? Jakie są Twoim zdaniem korzyści z hostowania witryny u dostawcy rozwiązań zarządzanych zamiast w przypadku konwencjonalnego hostingu współdzielonego?

Stefan: Wszystkie moje rzeczy są hostowane na DigitalOcean, w narzędziu do zarządzania serwerami do zarządzania serwerami, chociaż chcę uruchomić projekt na Vapor, aby móc poczuć, jak to działa. Ale zarządzam własnymi serwerami, odkąd 15 lat temu pracowałem u hosta internetowego, więc mam dobre pojęcie o tym, co robię.

Osobie, która nie ma doświadczenia w zarządzaniu serwerami ani doświadczenia w AWS, poleciłbym dostawcę rozwiązań zarządzanych, który może zarządzać infrastrukturą za Ciebie. To tylko jedna rzecz mniej, o którą musisz się martwić, dzięki czemu możesz skoncentrować się na swoim kodzie.
Dostawca może martwić się aktualizacjami, przestojami i skalowaniem, aby zarządzać obciążeniem. Wszystko to jest bolesne, jeśli nie masz już doświadczenia.

Jeśli nie możesz skorzystać z usług dostawcy usług zarządzanych, skorzystaj z narzędzi do zarządzania serwerem zamiast hostingu współdzielonego. To przepis na katastrofę – mam kilka strasznych historii z czasów, gdy pracowałem u dostawcy usług hostingowych i w Wordfence… ale to temat na inną okazję.

Shahzeb: Jak ważny jest Twoim zdaniem hosting zarządzany dla programistów Laravel? Jakie wartości wnosi to do ich rozwoju i jak wpływa to na ich przepływ pracy?

Stefan: Myślę, że zależy to od projektu i umiejętności programisty, ale ogólnie rzecz biorąc, posiadanie kogoś innego zarządzającego infrastrukturą oznacza, że ​​programista ma o jedną rzecz mniej do załatwienia samodzielnie.

Shahzeb: Co sądzisz o rozwiązaniach do zarządzanego hostingu, takich jak DreamHost, które zapewniają zoptymalizowany stos PHP i oferują framework Laravel za pomocą jednego kliknięcia z funkcjami wdrażania aplikacji internetowych?

Stefan: Nie znam się specjalnie na DreamHost, ale celem hostingu zarządzanego jest ułatwienie życia programistom. Jeśli narzędzie oszczędza im czas i wysiłek związany z zarządzaniem infrastrukturą oraz zapewnia bezpieczeństwo i niezawodność, bez konieczności skakania przez przeszkody, to dobrze.

Tworzenie narzędzi dostosowanych do frameworka jest zdecydowaną zaletą – im mniej wysiłku wymaga użycie narzędzia, tym więcej korzyści odniesie z niego programista.

Shahzeb: Z kim powinniśmy przeprowadzić następny wywiad i dlaczego?

Stefan: Michał Dyrynda – jest Australijczykiem i robi wiele dla społeczności Laravel. Organizuje Laracon Australia (zapytaj go, kiedy będzie następny!) i współgospodarzem Podcast Laravel News.

Shahzeb: Stephen, jestem pewien, że wiele osób robiło notatki. Jestem też pewien, że chętnie zobaczą zdjęcie Twojej stacji roboczej, jeśli chcesz je udostępnić!

Stefan: Chętnie się podzielę!

Dla tych, którzy się zastanawiają, to jest mój ukochany X1 Carbon, 14-calowy laptop, na którym robię wszystko. Z używania wielu monitorów zrezygnowałem wiele lat temu – kiedy mój najstarszy syn był jeszcze mały. Pracowałem wszędzie tam, gdzie się bawił, w domu i poza nim, i wkrótce doszedłem do punktu, w którym próba użycia drugiego monitora (lub nawet innego rozmiaru) spowalniała mnie. Posiadanie wirtualnych pulpitów w systemie Windows naprawdę robi różnicę.

Shahzeb: Dziękuję jeszcze raz, Stephenie Rees-Carter!