WBCE CMS – Way Better Content Editing.
You are not logged in.
So. Grade nochmal deinstalliert / installiert. Funktioniert jetzt einwandfrei, keine Ahnung was das gestern Abend für ein Fehler war. Vielleicht der vor dem Rechner...
Vielen Dank für die Geduld und die ganzen Features! 
Offline
Kann sein das bei der ganzen Updateerei in der DB was durcheinander war. Konnte den beschrieben Fehler auch nicht nachvollziehen. Habe dafür andere Fehler gefunden
Und ansonsten habe ich auch noch etwas um- und aufgeräumt. und Umgebaut und so weiter und so fort. Teste es mal
Last edited by beach (12.03.2026 15:38:46)
Online
screamindan
Hier eine Zusammenfassung des Aktuellen Stand:
Secure Download – Entwicklungsprotokoll v4.5.0
---
Architektur & Features
- Page-Modul für WBCE 1.6.5+ mit atomarem Einmal-Token-Download (MySQL-Transaktion + FOR UPDATE)
- Konfigurierbare Token-Länge (2–8 Blöcke à 5 Zeichen), Download-Limit pro Code
- Per-Datei is_active-Toggle (steuert alle zugehörigen Codes via codes.is_active)
- BB-Code-Parser für Frontend-Texte: [ b], [ i], [ u], [ center], [ br], [ url], { filename}-Platzhalter
- CSV-Export, clientseitige Tabellensortierung (kein Reload), Statistikleiste
- Zweisprachig (DE/EN) mit Fallback auf EN
Sicherheit
- CSRF-Schutz (FTAN) auf allen POST- und GET-Aktionen
- Upload: Extension-Whitelist + finfo MIME-Validierung + realpath()-Check
- .htaccess-Schutz für Upload-Verzeichnis (redundant in install/upgrade/save/modify)
- hash_equals() für Token-Vergleich (Timing-Attack-Schutz)
Bugfixes
- download.php: is_active fehlte im SELECT → deaktivierte Codes waren effektiv nicht gesperrt
- upgrade.php: Rebuild von <3.8.0 erstellte Codes-Tabelle ohne is_active-Spalte
- Upload-Verzeichnis auf Linux nach Neuinstallation ohne .htaccess
- target="_blank" beim Download entfernt (leere Browser-Seite)
- Dropdown-Breite (55px) nach CSS-Rewrite wiederhergestellt
Code-Qualität & Konventionen
- Alle Datei-Header vereinheitlicht: @version 4.5.0, @copyright Copyright (C) 2026 WBCE Community, @license GNU
General Public License v2 or later
- Lizenz-Header in CSS- und JS-Dateien ergänzt
- Hardcodiertes deutsches Schema-Default in install.php neutralisiert
- Token-Generierung vom Einstellungs-Speichern getrennt (eigener POST-Handler)
- PRG-Pattern durchgängig umgesetzt
Online
byteworker, awuest
Kann ich einfach drüberinstallieren?
Offline
Ja. Sollte alle bestehenden Tabellen updaten
Im Anhang noch eine kurze Anleitung.
Last edited by beach (12.03.2026 16:15:05)
Online
Rennt wi n Döppken! ![]()
Offline
Tippitoppi.
Der Quellcode ist nun auch GPL V2 konform und auf Github verfügbar.
https://github.com/Beachbone/wbce_secure_download
@florian: ich hatte das Modul bereits im AOR eingereicht. Dort fehlen aber noch ein paar Angaben. Werde diese korrigieren sobald ich Zugriff darauf habe.
Online
florian
Danke, habe den Eintrag aktiviert
Sorgen sind wie Nudeln: man macht sich meist zu viele.
Offline
beach
Hallo,
Im AOR hat das Release Date/Last update das falsche Datums-Format.
Secure Download 4.5.0 12.03.2026
Bitte ändern auf 2026/03/12. Ansonsten funktioniert die Sortierung nicht richtig.
Gute Nacht
hpzaun
Offline
Danke für den Hinweis. Wurde angepasst
Online
secure_download 4.5.0 → 4.5.5 — PHP 8.5 Kompatibilität + Sicherheits-Fixes
Stand: 1. April 2026
Im Zuge eines PHP 8.5-Upgrades wurde das Modul auf Kompatibilität und bekannte Sicherheitsschwachstellen geprüft. Dabei wurden mehrere Punkte identifiziert und in vier Patch-Releases behoben.
Änderungen
save.php
- $_REQUEST durch explizites $_POST/$_GET ersetzt — verhindert Cookie-Injection auf section_id/page_id
- filename-POST-Parameter wird nun serverseitig gegen die tatsächlichen Dateien im Upload-Verzeichnis validiert (Extension-Whitelist + file_exists())
- Token-Generierungsloop erhielt ein Abbruchlimit von 100 Versuchen
- warn_limit wird serverseitig auf Minimum 1 erzwungen
- finfo_open()/finfo_close() (prozedural, in PHP 8.5 deprecated) auf OOP-API umgestellt: (new finfo(FILEINFO_MIME_TYPE))->file(...) — kompatibel ab PHP 5.3, keine Deprecation-Warnung
modify.php
- addslashes() für JavaScript-String-Einbettung durch json_encode() ersetzt — verhindert XSS durch Zeilenumbrüche oder </script> in Sprachstrings
- href="javascript:..." durch data-url-Attribute mit onclick-Handler ersetzt — CSP-kompatibel
- Sprachkonstanten in SQL-INSERT durch escapeString() abgesichert
- Info-Zeile „Aktive Datei" über der Token-Generierungsleiste ergänzt
download.php / view.php
- error_url wird vor header('Location: ...') von Zeilenumbrüchen bereinigt — verhindert HTTP-Response-Splitting
add.php
- Sprachkonstanten in SQL-INSERT durch escapeString() abgesichert
backend.css / backend.js
- Button- und UI-Farbpalette auf Basis #28609B harmonisiert (Blau, Grau, Rot, Grün)
info.php
- Version 4.5.0 → 4.5.5
Hinweis für bestehende Installationen
4.5.5 einfach über die bestehende Installation einspielen.
Keine Datenbankänderungen — alle Fixes betreffen ausschließlich PHP- und CSS/JS-Dateien.
Umgebung
secure_download: 4.5.5
WBCE: 1.6.5
PHP: 8.5.4
Edit: Update angehängt
Last edited by beach (01.04.2026 09:42:56)
Online
florian, byteworker