Skip to content

3.5.0

Compare
Choose a tag to compare
@skerbis skerbis released this 28 Jul 20:12
· 121 commits to main since this release
428c230

🎯 Zusammenfassung

Diese PR implementiert 7 umfassende Robustheit-Verbesserungen für das MBlock-Addon, die es deutlich stabiler, sicherer und performanter machen - bei 100% Rückwärts-Kompatibilität.

Implementierte Verbesserungen

1. Session-Management mit rex_session API

  • Neue MBlockSessionHelper-Klasse für atomare Session-Operationen
  • Ersetzt alle direkten $_SESSION-Zugriffe durch sichere rex_session-Funktionen
  • Thread-sichere Counter-Verwaltung für MBlock-IDs

2. JSON-Handling-Robustheit

  • Neue MBlockJsonHelper-Klasse für sicheres JSON-Processing
  • Umfassende Error-Handling für json_encode/json_decode mit Fallbacks
  • HTML-Entity-Dekodierung vor JSON-Parsing
  • Validierung und Sanitization aller JSON-Operationen

3. JavaScript Error-Handling & Memory-Management

  • Komplette Überarbeitung von mblock.js mit try-catch-Blöcken
  • Event-Namespacing (.mblock) für besseres Memory-Management
  • Performance-Optimierung der mblock_reindex-Funktion von O(n²) auf O(n)
  • Defensive Programming mit Element-Validierung

4. Input-Validierung & SQL-Injection-Schutz

  • Rekursive Array-Sanitization in MBlockValueHandler
  • Sichere Parameter-Bindung statt String-Concatenation
  • Input-Type-Validierung für alle User-Inputs

5. DOM-Navigation-Sicherheit

  • Erweiterte Null-Checks in Bootstrap-Replacern
  • Sichere DOM-Traversierung mit Validierung

6. Parameter-Validierung

  • Input-Validierung für kritische MBlock::show()-Parameter
  • Type-Checking und Exception-Handling

7. Error-Recovery-Mechanismen

  • Emergency-Fallbacks bei kritischen JavaScript-Fehlern
  • Graceful Degradation - einzelne Fehler brechen nicht die gesamte Funktionalität

🔒 Sicherheits-Features

  • SQL-Injection-Schutz durch Parameter-Bindung
  • XSS-Prävention durch HTML-Escaping
  • Input-Sanitization mit rekursiver Array-Bereinigung
  • Memory-Leak-Prävention durch Event-Cleanup

🚀 Performance-Optimierungen

  • O(n²) → O(n) Verbesserung der mblock_reindex-Funktion
  • Batch DOM-Updates für bessere Performance
  • Event-Namespacing für optimiertes Event-Management

Neue Utility-Klassen

  • MBlockSessionHelper - Sichere Session-Verwaltung
  • MBlockJsonHelper - Robustes JSON-Handling

100% Rückwärts-Kompatibilität

  • Keine Breaking Changes
  • Alle bisherigen APIs funktionieren unverändert
  • Kann ohne Anpassungen bestehender Module verwendet werden

🧪 Getestet

  • ✅ PHP-Syntax-Validierung aller geänderten Dateien
  • ✅ JavaScript-Lint-Prüfung
  • ✅ Kompatibilität mit bestehenden MBlock-Implementierungen

📊 Code-Statistiken

  • 14 Dateien geändert
  • 1.817 Zeilen hinzugefügt
  • 327 Zeilen entfernt
  • 4 neue Utility-Klassen erstellt

Diese Verbesserungen machen MBlock deutlich robuster, sicherer und performanter für Produktionsumgebungen! 🎉

What's Changed

  • rex:change -> mblock:change by @alxndr-w in #166
  • 🚀 Robustheit-Verbesserungen: 7 umfassende Sicherheits- und Performance-Updates für MBlock by @skerbis in #176

Full Changelog: 3.4.13...3.5.0