Ich bin schon seit ca. 1 Jahr dabei, ein eigenes Paidmail-Script zu schreiben, weil es entweder kein vernünftiges Script auf dem Markt gibt, oder immer irgendwelche wichtigen Features fehlen, die auch (aufgrund des schlechten Codes) nur sehr schwer implementiert werden können.
Alle mir bekannten Scripte sind hoffnungslos veraltet und voll mit Sicherheitslöcher oder Bugs, welche einfach nicht gefixt werden. Kein Script, welches mir bekannt ist, hat eine saubere Trennung vom HTML/JS und PHP-Code, will man zb. beim "Paidmailer" etwas ändern, muß die Änderung in zig PHP-Dateien eingetragen werden.
Neuere Scripte basieren zum größten Teil auf den alten und Fehlerbehafteten Scripten und bieten nur sehr wenig neue Funktionen, welche zum größten Teil auch noch Laienhaft umgesetzt wurden.
Mein Script (welches noch nicht fertig geschrieben ist), beinhaltet folgende Features:
Die Liste könnte noch unzählige Punkte länger sein, aber sie soll nur einen kleinen Einblick in mein Script bieten und einen ersten Eindruck verschaffen, was bereits umgesetzt wurde.
Jetzt die Frage an euch...was würdet ihr noch da einbauen, was würdet ihr weg lassen?
Alle mir bekannten Scripte sind hoffnungslos veraltet und voll mit Sicherheitslöcher oder Bugs, welche einfach nicht gefixt werden. Kein Script, welches mir bekannt ist, hat eine saubere Trennung vom HTML/JS und PHP-Code, will man zb. beim "Paidmailer" etwas ändern, muß die Änderung in zig PHP-Dateien eingetragen werden.
Neuere Scripte basieren zum größten Teil auf den alten und Fehlerbehafteten Scripten und bieten nur sehr wenig neue Funktionen, welche zum größten Teil auch noch Laienhaft umgesetzt wurden.
Mein Script (welches noch nicht fertig geschrieben ist), beinhaltet folgende Features:
- PHP5 OOP
- Abstrakter Datenbank-Layer (verschiedene Engines wie MySQL, MySQL-I, PDO usw. können als "Driver" geladen werden.)
- Komplette Trennung vom HTML, PHP und JS, HTML befindet sich in PHP-Klassen, JS wird über eine spezielle Klasse geladen
- HTML-Form-Elemente (Input, Select, Kalender, Fieldset, Submit usw.) über eine Dokumenten-Klasse
- Vernünftige Session-Klasse inkl. Sicherheitstoken beim Aufrufen/Abschicken von Formularen und Webseiten läuft unsichtbar im Script (für Gäste, Mitglieder und Admins), dadurch Session-Hijacking unmöglich
- Ganzes Design läuft über 1 HTML-Seite, welche über die Theme-Engine geladen und über eine Caching-Klasse gecacht werden kann
- Unzählige Benutzergruppen und Admin mit jeweils unterschiedlichen Systemrechten möglich
- Alle im System gespeicherten Passwörter liegen als SHA512-Hash vor (oder SHA-256, falls das SHA-512 am Server nicht verfügbar sein sollte) => MD5 ist Geschichte und läßt sich zu schnell knacken
- Kompletter Globaler Scope (Server-Variablen, POST, GET und sogar COOKIE) wird bei jedem Seitenaufruf auf plausiblen Wert geprüft, ungültige Variablen werden sofort wieder gekillt (zb. bei versuchten Injection). Dateiupload ist nicht möglich und Arrays wie POST oder GET lassen sich nur noch über diese Klasse holen, verändern oder setzen (zb. $_POST['foo'] = 'bar'; funktioniert nicht mehr).
- Alle Variablen, welche in einem Formular abgeschickt werden, werden automatisch auf Plausibilität (Validate-Klasse) geprüft (zb. Normale Vornamen enthalten keine Sonderzeichen, PLZ sind 5 Stellig usw. Gibt es einen Fehler, wird das Formular abgefangen und mit den bereits ausgefüllten Feldern erneut angezeigt.
- Mail-Adressen werden auf Syntax (Schreibweise) und Echtheit (MX-Host mit Anfrage beim Server) geprüft, Mail-Anbieter oder Adressen, welche in der Blackliste (im Admin einstellbar) sind, werden nicht angenommen
- Filterung der Mitglieder nach Geo-Location
- File-Management (FOpen, Write, Read, cURL usw. läuft über PHP-Klassen.
- Konfigurierbares und abschaltbares Anti-Cheater (Klick-Bots).
- Unbegrenzte Anzahl von Netzwerken (lassen sich im Admin eintragen). Geplant ist noch eine zentrale Verwaltung, bzw. Netzwerk-Abgleich aller Installationen, so würde jeder auf dem aktuellsten Stand bleiben, ohne die Mühe zu haben, neue Netzwerke einzutragen (das ganze natürlich abschaltbar)
- Multi-Language-Fähig über geparste INI-Files
- Währungen wie "Klammlose", "Primera", "Euro" usw. liegen als Treiber für eine abstrakte Klasse bei
- Mehrere Währungen zur Vergütung der Mitglieder möglich
- Migration von allen bekannten alten Scripten (in Planung)
- Plug`n Play für neue Komponenten (braucht nur im Admin aktiviert zu werden)
- Konfigurierbare Cronjobs (Gebürtstagsgrüße, Neuer Ref, alte Mails löschen usw.)
Die Liste könnte noch unzählige Punkte länger sein, aber sie soll nur einen kleinen Einblick in mein Script bieten und einen ersten Eindruck verschaffen, was bereits umgesetzt wurde.
Jetzt die Frage an euch...was würdet ihr noch da einbauen, was würdet ihr weg lassen?