Seite 349 - Mironsoft Blog
-
Maxim Mironjuk
-
Januar 19, 2025
Docker Hub war für viele Jahre die Standardantwort auf die Frage, wo Images gespeichert werden, doch Rate Limits, Kosten und Compliance-Anforderungen bringen Teams zunehmend zu alternativen Container Registries. GitLab, GitHub, Amazon ECR und selbst gehostetes Harbor bieten unterschiedliche Antworten auf dieselbe Frage, welche Registry zu welcher Situation passt.
-
Maxim Mironjuk
-
Januar 19, 2025
willReturn() deckt den überwiegenden Teil aller Mock-Bedürfnisse ab, einen festen Wert zurückgeben, fertig. Manchmal reicht das aber nicht: Ein Mock muss abhängig vom übergebenen Argument unterschiedlich reagieren, oder sein Verhalten muss sich über mehrere Aufrufe hinweg dynamisch ändern. Genau dafür gibt es willReturnMap und willReturnCallback. Dieser Artikel zeigt, wie beide funktionieren und wo die Grenze liegt, ab der ein Mock eigentlich schon zu viel Logik enthält.
-
Maxim Mironjuk
-
Januar 19, 2025
Ein regulärer Ausdruck, der auf kurzen Testeingaben in Millisekunden matcht, kann bei einer nur geringfügig längeren, bösartig konstruierten Eingabe plötzlich Sekunden oder Minuten brauchen, weil die PCRE-Engine exponentiell viele Rücksetzpunkte durchprobiert. Dieses als catastrophic Backtracking bekannte Phänomen ist einer der unterschätztesten Performance- und Sicherheitsfallstricke in PHP-Anwendungen, die Nutzereingaben gegen Regex-Patterns validieren. Dieser Artikel zeigt, wie Backtracking mechanisch funktioniert, an welchen Pattern-Strukturen es explodiert, und mit welchen konkreten Techniken sich das Risiko systematisch entschärfen lässt.
-
Maxim Mironjuk
-
Januar 19, 2025
Eine einklappbare Sidebar Navigation ist eines der häufigsten Layout Elemente in Dashboards und Admin Oberflächen. Mit Alpine.js lässt sich der komplette Zustand, vom Öffnen und Schließen über die Persistenz im Browser bis zur mobilen Overlay Variante, in einer kompakten Komponente abbilden, ohne React oder Vue laden zu müssen.
-
Maxim Mironjuk
-
Januar 19, 2025
Ein öffentlich erreichbarer GraphQL-Endpunkt, der beliebige Mutationen akzeptiert, ist ein offenes Einfallstor für Datenmanipulation, Spam und automatisierte Angriffe. GraphQL Persisted Mutations schließen diese Lücke, indem nur eine serverseitig vorab genehmigte Liste von Operationen überhaupt ausgeführt werden darf, alles andere wird abgelehnt, bevor auch nur ein Resolver aufgerufen wird.
-
Maxim Mironjuk
-
Januar 19, 2025
Wer Textilien verkauft oder unter einer eigenen Marke labeln lässt, muss zwei EU-Vorschriften im Blick behalten: die Textilkennzeichnungsverordnung für die Faserzusammensetzung und, für bestimmte Produktkategorien, die Pflicht zu einem verantwortlichen Wirtschaftsakteur mit EU-Adresse. Dieser Artikel erklärt in einfachen Worten, was beide Regeln bedeuten, wer betroffen ist und welche Schritte Shop-Betreiber jetzt konkret unternehmen sollten, um Abmahnungen und Probleme beim Zoll zu vermeiden.
-
Maxim Mironjuk
-
Januar 19, 2025
Ein Tooltip, der nur bei Mausbewegung erscheint, bleibt für Tastaturnutzer und Screenreader unsichtbar. Barrierefreie Tooltips mit Tailwind CSS verknüpfen Zusatzinformationen über aria-describedby, reagieren auf Hover und Fokus gleichermaßen und schließen sich zuverlässig per Escape.
-
Maxim Mironjuk
-
Januar 19, 2025
Nicht jede Zufallszahl in PHP ist gleich sicher. Während rand() und mt_rand() für Spiele und Simulationen ausreichen, sind sie für Tokens, Passwort-Reset-Links oder kryptographische Schlüssel gefährlich vorhersagbar. random_bytes, random_int und die Randomizer-Klasse aus PHP 8.2 liefern echte, kryptographisch sichere Zufallswerte für genau diese Fälle.
-
Maxim Mironjuk
-
Januar 19, 2025
Eine Teststrategie, die nur im Wiki dokumentiert ist, verändert das Verhalten eines Teams nicht von selbst. Erst wenn Pyramidendenken im Code Review, in der Definition of Done und in einer schrittweisen Migration bestehender Tests verankert wird, entsteht eine gesunde Verteilung zwischen schnellen Unit Tests und teuren End to End Tests, die auch unter Zeitdruck Bestand hat.
-
Maxim Mironjuk
-
Januar 19, 2025
Eine Pipeline für Magento 2 soll nicht nur hübsch aussehen, sondern echte Risiken früh stoppen und trotzdem schnell genug bleiben, damit das Team sie nicht als Bremsklotz empfindet. Genau diese Balance entscheidet, ob GitHub Actions im Projekt wirklich trägt.
-