Hinweis: Der folgende Artikel hilft Ihnen dabei: Stephen Rees-Carter über seine Reise als Laravel…
Auf dem Weg von Brisbane, Queensland, ist DreamHost im Gespräch mit dem Laravel-Sicherheitslehrer Stephen Rees-Carter. Stephen ist ein Sicherheitsberater, der sich auf Sicherheitsüberprüfungen für Laravel- und PHP-Sites spezialisiert hat.
Neben seiner Tätigkeit als Sicherheitsberater organisiert Stephen auch verschiedene Sicherheitsworkshops und Schulungen für Entwicklungsteams. Diese Lehren richten sich an Entwickler, die wie technische Experten denken sollen, um ihnen dabei zu helfen, sicheren Code zu schreiben und Schwachstellen zu identifizieren, die Hacker ausnutzen könnten. Stephen hält in seiner Freizeit auch Vorträge auf Sicherheitskonferenzen und erstellt Newsletter.
Shahzeb: Hallo Stephen, vielen Dank, dass Sie sich die Zeit für dieses Interview genommen haben. Können Sie uns, bevor wir beginnen, etwas über sich erzählen, damit unsere Leser Sie besser kennenlernen können?
Stephan: Sicher. Ich heiße Stephen Rees-Carter und ich lebe in Brisbane, Australien. Ich bin ein großer Tolkien-Fan – die „Herr der Ringe“-Filme sind meiner Meinung nach die besten Filme, die je gedreht wurden – und in den meisten Dingen, die ich mache, findet man Tolkien-Bezüge.
Ich bin Entwickler, seit es in meiner Highschool einen Kurs für „Softwaredesign und -entwicklung“ gab. Ich ging zur Universität, studierte Software Engineering und bekam meinen ersten Job als Entwickler, der mit Zend Framework (1) bei einem lokalen Webhoster arbeitete.
Ein Freund stellte mich vor 10 Jahren in sein Sicherheitsproduktgeschäft ein, und das brachte mich auf eine Reise, auf der ich mehr über Sicherheit lernte und liebte. Seitdem habe ich ein Jahr damit verbracht, gehackte WordPress-Seiten zu bereinigen Wordfencehat zwei Sicherheitszertifizierungen abgeschlossen (Security+ und CEH) und ist erst kürzlich vom Vollzeitentwickler zum Sicherheitsberater gewechselt.
Ich habe Anfang des Jahres mein Laravel-Unternehmen für Sicherheitsaudits und Penetrationstests gegründet und seitdem einen Großteil meiner Arbeitszeit damit verbracht, den Code anderer Leute zu lesen und zu versuchen, mich in deren Apps zu hacken. Es macht viel Spass!
Shahzeb: Können Sie Ihre Reise mit Laravel teilen? Gibt es relevante Erfahrungen aus Ihrer Karriere, die Sie interessant finden und die Sie gerne mit unserem Publikum teilen würden?
Stephan: Zum ersten Mal hörte ich 2013 von einem Freund, mit dem ich zusammenarbeitete, von Laravel. Wir waren auf linux.conf.au in Canberra und er erwähnte, dass er mit einem neuen Framework namens „Laravel“ experimentierte, das mir gefallen könnte. Damals betrachtete ich Zend Framework als das Framework meiner Wahl, aber ZF2 war erst kürzlich auf den Markt gekommen und die Entwicklererfahrung war absolut schrecklich – ich war überhaupt nicht zufrieden damit.
So entstand dieses neue Framework namens Laravel – ich habe die kommende Version 4 ausprobiert und war begeistert. Es hat mein Leben als Entwickler einfacher gemacht, und das war mir wichtig.
Seitdem bin ich bei Laravel geblieben, weil es die Entwicklung angenehm machte, und das hat meine Entscheidungen im Laufe meiner Karriere beeinflusst. Nicht nur in Bezug auf Frameworks, sondern auch in Bezug auf Code-Designmuster und Tools.
Wenn Sie die Wahl haben, zwischen der langwierigen und strengen „Best Practice“ oder der elegant einfachen, aber nicht „Best Practice“ zu wählen, wählen Sie die Methode, die Ihnen Spaß macht, und machen Sie sie zu Ihrer eigenen. Aus diesem Grund verwende ich Laravel, aus diesem Grund verwende ich einige Facades und aus anderen nicht, und aus diesem Grund verwende ich Windows 11 mit WSL2. All diese Entscheidungen helfen mir, die Entwicklung zu lieben.
Das ist auch der Grund, warum ich in den Bereich Sicherheit gewechselt bin. Ich war schon immer von Sicherheit fasziniert (ich glaube, es begann schon früh mit einer Liebe zu Rätseln und Magie), und als sich im Laufe der Jahre Gelegenheiten boten, mich mehr auf den Sicherheitsaspekt der Entwicklung zu konzentrieren, wählte ich immer wieder diesen Weg, den ich erkunden wollte, weil ich ihn gefunden hatte es interessant und unterhaltsam.
Shahzeb: Gab es einen besonderen Grund, warum Sie sich für die Arbeit mit Laravel gegenüber den anderen verfügbaren Frameworks entschieden haben? Was ist Ihrer Meinung nach wichtig für die Nutzung von Laravel?
Stephan: Wie ich gerade erwähnt habe, habe ich mich für Laravel entschieden, weil es die Entwicklung zu einer Zeit angenehm machte, als ich Schwierigkeiten hatte, die vorhandenen Tools zu nutzen. Das ist die Stärke von Laravel – es ist ständig bestrebt, die Entwicklung unterhaltsam zu gestalten. Wenn ich mich hinsetze, um Code zu schreiben, möchte ich die Erfahrung genießen und das Gefühl haben, dass meine Tools mir helfen – anstatt gegen mich zu kämpfen.
Ein weiterer Aspekt von Laravel, den ich liebe, ist das inhärente Wissen des Frameworks – es wurde von so vielen Leuten bearbeitet, dass es viele kleine Optimierungen und Funktionen gibt, die viele Randfälle lösen, an die man normalerweise nie denken würde.
Dies erleichtert Ihnen das Leben als Entwickler, da Sie sich über diese Grenzfälle keine Sorgen machen müssen – und das Gleiche gilt auch für die Sicherheit. Es gibt so viele subtile Sicherheitsfunktionen, dass es für Entwickler ohne Sicherheitskenntnisse wirklich einfach ist, eine sichere App zu erstellen.
Shahzeb: Du hast das geschaffen Laravel-Sicherheit in Depth-Website, ein Bonus für Laravel-Entwickler. Wie sind Sie auf die Idee gekommen?
Stephan: Laravel Security in Depth entstand, als ich mich darauf vorbereitete, einen Vortrag zu halten Laracon Online im September 2021. Damals machte ich aufgrund eines Burnouts eine Arbeitspause und überlegte, was ich als nächstes tun wollte.
Es hat mir viel Spaß gemacht, meinen Vortrag zusammenzustellen, und ich wollte unbedingt mehr tun, um Entwicklern etwas beizubringen. Ich habe darüber nachgedacht, einen Kurs oder ein Buch zu schreiben, aber jeder macht das, und ich wollte etwas anderes ausprobieren … also habe ich beschlossen, eine kostenpflichtige Mailingliste zu starten, mit der Absicht, Laravel-Entwicklern über meine Vorträge hinaus etwas über Sicherheit beizubringen.
Shahzeb: Warum haben Sie darüber nachgedacht, eine Website rund um die Laravel-Sicherheit zu erstellen?
Stephan: Sicherheit ist ein unterschätztes Thema in Entwicklungsgemeinschaften, insbesondere in der Laravel-Community. Das liegt zum Teil daran, dass Laravel von Haus aus so sicher ist – Entwickler denken oft, dass sie sich darüber keine Sorgen machen müssen, weil das Framework damit umgehen kann – aber es ist trotzdem unglaublich wichtig. Deshalb wollte ich die Denkweise ändern und Entwicklern helfen, mehr über Sicherheit und das Schreiben von sicherem Code nachzudenken.
Shahzeb: Was sind Ihrer Meinung nach die größten Vorteile, die Entwickler aus der Laravel Security in Depth-Website ziehen?
Stephan: Das Wichtigste, was ich vermitteln möchte, ist die Liebe zur Sicherheit. Ich versuche, jede E-Mail unterhaltsam und interessant zu gestalten und suche nach der besten Möglichkeit, ein Thema zu vermitteln, bei dem die Leute nicht abschalten und das Interesse verlieren. Aus diesem Grund habe ich eine absichtlich anfällige Demo-Site für Laravel Security in Depth erstellt.
Beim Unterrichten über eine Schwachstelle wie Cross-Site-Scripting (XSS)es ist viel einfacher, sich damit auseinanderzusetzen, wenn man die Schwachstelle selbst ausnutzen kann. Deshalb habe ich eine Reihe von Herausforderungen zusammengestellt, mit denen Leser lernen können, wie XSS funktioniert – aber echte XSS-Angriffe in ihren eigenen Browsern ausführen.
Shahzeb: Sie haben im Laufe der Jahre an einer Reihe von Nebenprojekten gearbeitet. Was sollten Leser über all die Dinge wissen, die Sie heutzutage in Laravel tun?
Stephan: Außerhalb meiner Laravel-Sicherheitsaudits und meiner Mailingliste habe ich drei Hauptprojekte:
Das erste ist WithExtraVeg, das Unternehmen meiner Frau. Sie ist eine vegane Ernährungsberaterin, die veganen Familien Ernährungspläne und Ernährungshilfe bietet. Ich bin für die technische Seite des Unternehmens zuständig und baue und pflege das Speiseplansystem.
Eines der anderen beiden Projekte ist technisch gesehen öffentlich, obwohl es noch unglaublich früh und noch nicht wirklich nutzbar ist. Ich baue ein Open-Source-Toolkit zur Überprüfung der Sicherheit von PHP-Sites und -Code. Meine Absicht ist es, alle skriptfähigen Teile meines Sicherheitsaudit-Workflows in einem einzigen Tool zusammenzufassen. Ich bin sicher, dass Sie es finden können, wenn Sie interessiert sind. 😉
Mein drittes ist ein geheimes Projekt, das ich in den nächsten Monaten starten möchte. (Hinweis: Es ist auf die Ausbildung von Entwicklern ausgerichtet.)
Shahzeb: Was hat Sie dazu motiviert, Laravel-Webentwickler und Sicherheitsberater zu werden? Wer waren Ihre Mentoren und Inspirationen auf dieser Reise?
Stephan: Die Laravel-Codierungserfahrung selbst hat mich in die Community hineingezogen, obwohl ich lügen würde, wenn ich sagen würde, dass dies der einzige Einfluss war. Dayle Rees und Jeffery Way (d. h Laracasts) waren zwei der großen Einflüsse in meinen frühen Tagen bei Laravel, insbesondere Jefferys Lehre von elegantem Code und die Übernahme der Designs rund um Facades – anstatt an „Best Practices“ festzuhalten.
Außerdem hatte ich in einem meiner Jobs einen fantastischen Manager, der mich jeden Tag herausforderte, besseren Code zu schreiben – was mich dazu zwang, über das „Warum“ meiner Codierungsentscheidungen nachzudenken.
Der größte Einfluss auf meine Sicherheitsreise ist Troy Hunt. Ich habe zu Beginn meiner Sicherheitsreise an seinem „Hack Yourself First“-Workshop teilgenommen und war total begeistert. Die Idee, dass man seine Sachen besser verteidigen kann, wenn man weiß, wie man Schwachstellen hackt und ausnutzt, hat für mich das Spiel verändert.
Shahzeb: Mir ist aufgefallen, dass Sie gerne auf Laracon-Konferenzen sprechen. Über welches Thema wirst du dieses Jahr sprechen? Und warum?
Stephan: Ich habe ehrlich gesagt keine Ahnung! 🤣
In meinem ersten Laracon-Vortrag habe ich mich in die Anwendung gehackt, und in meinem zweiten habe ich mich in den Server hinter der App gehackt – die Fortsetzung meines ersten Vortrags. Wohin soll ich die Serie als nächstes bringen? Ich habe darüber nachgedacht, mir so etwas wie Vapor anzuschauen (also Serverless zu hacken), aber ich weiß nicht genug über Serverless, um zu wissen, was in diesem Bereich möglich ist. Vielleicht schreibe ich stattdessen ein Prequel und hacke den Entwickler?
Shahzeb: Welche Art von Webhosting würden Sie bevorzugen? Was sind Ihrer Meinung nach die Vorteile des Hostings einer Website bei einem Anbieter verwalteter Lösungen im Vergleich zu herkömmlichem Shared Hosting?
Stephan: Alle meine Sachen werden auf DigitalOcean gehostet, auf einem Serververwaltungstool zur Verwaltung der Server, obwohl ich ein Projekt auf Vapor starten möchte, damit ich ein Gefühl dafür bekomme, wie es funktioniert. Aber ich verwalte meine eigenen Server, seit ich vor 15 Jahren bei einem Webhoster gearbeitet habe, sodass ich eine gute Vorstellung davon habe, was ich tue.
Für jemanden ohne Erfahrung mit der Verwaltung von Servern oder AWS-Erfahrung würde ich einen Anbieter verwalteter Lösungen empfehlen, der die Infrastruktur für Sie verwalten kann. Sie müssen sich nur um eine Sache weniger kümmern und können sich auf Ihren Code konzentrieren.
Der Anbieter kann sich um Updates, Ausfälle und Skalierung kümmern, um die Last zu bewältigen. Es ist schwierig, all dies herauszufinden, wenn Sie noch keine Erfahrung haben.
Wenn Sie keinen Managed-Service-Anbieter nutzen können, entscheiden Sie sich lieber für Serververwaltungstools als für Shared Hosting. Das ist ein Rezept für eine Katastrophe – ich habe einige Horrorgeschichten aus meiner Zeit bei einem Hosting-Anbieter und bei Wordfence gehört … aber das ist ein Thema für ein anderes Mal.
Shahzeb: Wie wichtig ist Managed Hosting Ihrer Meinung nach für Laravel-Entwickler? Welche Werte bringt dies für ihre Entwicklung mit sich und wie wirkt sich dies auf ihren Arbeitsablauf aus?
Stephan: Ich denke, es hängt vom Projekt und den Fähigkeiten des Entwicklers ab, aber im Allgemeinen bedeutet die Tatsache, dass jemand anderes die Infrastruktur verwaltet, dass der Entwickler eine Sache weniger selbst erledigen muss.
Shahzeb: Was halten Sie von verwalteten Hosting-Lösungen wie DreamHost, die einen optimierten PHP-Stack bereitstellen und das Laravel-Framework mit einem Klick mit Funktionen zur Bereitstellung ihrer Web-Apps anbieten?
Stephan: Ich kenne mich nicht speziell mit DreamHost aus, aber der Sinn von Managed Hosting besteht darin, das Leben des Entwicklers einfacher zu machen. Wenn die Tools ihnen die Zeit und den Aufwand für die Verwaltung der Infrastruktur ersparen und Sicherheit und Zuverlässigkeit bieten, ohne dass sie dafür irgendwelche Hürden überwinden müssen, dann ist das eine gute Sache.
Die Entwicklung von Framework-spezifischen Tools ist ein klares Plus – je weniger Aufwand die Verwendung eines Tools erfordert, desto größer ist der Nutzen für den Entwickler.
Shahzeb: Wen sollten wir als nächstes interviewen und warum?
Stephan: Michael Dyrynda – Er ist ein australischer Landsmann und tut viel für die Laravel-Community. Er organisiert Laracon Australia (fragen Sie ihn, wann das nächste stattfindet!) und ist Mitveranstalter Laravel News-Podcast.
Shahzeb: Stephen, ich bin sicher, dass sich viele Leute Notizen gemacht haben. Ich bin mir auch sicher, dass sie gerne ein Bild Ihres Arbeitsplatzes sehen würden, wenn Sie eines teilen möchten!
Stephan: Gerne teilen!
Für diejenigen, die sich fragen: Das ist mein geliebter X1 Carbon, der 14-Zoll-Laptop, auf dem ich alles mache. Ich habe vor Jahren aufgegeben, mehrere Monitore zu verwenden – als mein ältester Sohn noch recht klein war. Ich arbeitete überall dort, wo er im Haus und außerhalb des Hauses spielte, und kam bald an den Punkt, an dem der Versuch, einen zweiten Monitor (oder sogar einen in einer anderen Größe) zu verwenden, mich langsamer machen würde. Auch virtuelle Desktops in Windows machen einen echten Unterschied.
Shahzeb: Nochmals vielen Dank, Stephen Rees-Carter!