Content Management System
Diese Webseite basiert auf einem von mir geschriebenen Content Management System. Diverse Feature sind zwar schon implementiert, kommen aber in der aktuellen Ausführung nicht zum Einsatz.Anwendungsgebiet
Content-Management-System, in der konkreten Ausführung angepasst an die Bedürfnisse von Fotografen.
Auch für andere Anwendungen anpassbar.
System-Anforderungen
an den Server
- php, ab Version 5.0.0
- mysql-Datenbank
- wenn möglich, die Verwendung von https
- webspace: ohne Inhalte & Medien (Texte, Bilddateien, Filme, etc.): < 3mb
an die Besucherclients
Durch die Wahl der komplett serverseitig verarbeiteten Sprache php sind die Anforderungen an die Userclients minimal.
Der optionalen Einsatz von javasript ist nach Zahlen zum aktuellen Stand keine wirkliche Einschränkung, da über 94% der Nutzer dieser Seite Javascript aktiviert haben.
Zur zeit werden nur bei eingebetteten Videos auch Flash verwendet. Flashgalerien wurden durch reine javascrip-Versionen ersetzt, können aber weiterhin verwendet werden.
Aufgrund massiver css-nicht-Konformität älterer (und teilweise auch aktuellerer Browser) wird der Internet-Explorer erst ab Version 6 unterstützt.
Mit allen anderen verbreiteten Browser funktioniert alles reibungs- und problemlos (Mozilla: Firefox, Seamonkey, opera, safari, ..).
Konfigurierbarkeit
Skalierbarkeit, Erweiterbarkeit | extendibility
Das System ist nahezu beliebig skalierbar sind:
Anzahl
- Seiten
- Alben
- User
Modularer Aufbau der Komponenten: wer bspw. keine Suchfunktion benötigt, aktiviert das Modul nicht.
Mit Hilfe der Userverwaltung können Userrechte individuell für diverse Funktionen eingestellt werden, Vergabe von Adminrechten an mehrere Nutzer möglich
Seiteninhalte können entweder in Form von statischem Text aus der Datenbank gelesen werden oder es können Seiten inkludiert werden, sodass php Code zur Ausführung kommen kann Kontaktformular, Suchformular,..).
Durch Vorgenerierung der Seiten werden diese in 0,0257 Sekunden erzeugt.
Pro Seite ist einstellbar, ob diese
- von Suchmaschinen indexiert werden soll oder nicht.
- durch die seiteneigene Suchfunktion gefunden werden soll (bspw. die Auflistung der Fehlerseiten nützen dem Suchenden als Antwort wenig).
- ein eigenes rss-feed bekommen soll.
Automatische Erstellung einer sitemap-Datei, die von bspw. von Google gelesen werden kann.
Je nach Browser(version), Hintergrundfarbe, Auflösung des Besucher-Bildschirms, etc. können verschiedene css-Dateien eingebunden werden oder auf verschiedene Seiten weitergeleitet werden.
Automatisches erstellen bzw. aktualisieren von rss-feeds, die Besucher abonnieren können, um kein update zu verpassen:
- pro Seite ein feed
- für die komplette Domain ein feed
Die Suche ist frei konfigurierbar:
- Suche nur in den Meta-Feldern title, keywords, body,..
- und | oder Verknüpfung
- Anzahl der Suchergebnisse pro Seite
- Option: Suchergebnisse in neuem Fenster öffnen
Aktionen | Einstellungen, die User selbst ausführen | vornehmen können:
- Änderung der eigenen Daten (E-Mailadresse, Passwort,..
- Freigabe der Alben | des Album für Gäste (eingeschraenkter account). dabei kann gewählt werden, ob wie lange die Freigabe bestehen soll.
Es kann eingestellt werden, über welche, den User betreffende Änderungen, dieser per Mail benachrichtigt werden soll (Bestätigung bei Änderung des Passwortes, Änderung der User-Galerie).
Kontaktformular
Optionaler Spamschutz durch captcha.
Optionale Bestätigungsmail an Absender, um Missbrauch zu verhindern | erschweren.
Weiteres
- Das System ist als Mehrsprachsystem ausgelegt: Auswahl der angezeigten Sprache durch User bzw. auch durch die durch den Browser übermittelte Sprache möglich.
Bedienbarkeit | usability
Das System ist darauf ausgelegt, von jedem Benutzer ohne vorhergehende Kenntnisse bedient werden zu können (einen Browser bedienen sollte man schon können) .
Der User erkennt leicht, wo er sich auf der Seite befindet, da die entsprechenden Kategorien angezeigt und markiert werden.
Die site-map und die Suchfunktion helfen darüber hinaus bei der Orientierung und Auffindung von Inhalten.
Barrierefreiheit
Die anpassbare Schriftgröße (sowie die Wahl der Hintergrundfarbe) ermöglichen auch sehschwächeren Menschen die problemlose Nutzung.
Der konsequente Einsatz von Alternativtexten (beispielsweise bei eingebundenen Fotos) ist eine weitere Hilfe.
Sicherheit
Im guten Stil werden alle möglichen Eingaben geprüft, der beste Schutz vor cross-site-scripting-Attacken und sql-injection-Angriffen.
Darüber hinaus erhöht es auch den Komfort für den Nutzer, da frühzeitig auf Falscheingaben hingewiesen wird.
Auf Wunsch kann das integrierte intrusion detection system (IDS) dem Betreiber eine Mail schicken, die auf die versuchten Attacken (sql-injection-Versuche,
brute-force-Attacken, um Zugang zum System zu erhalten) hinweist und | oder automatisch die IP sperrt, von dem aus der Angriff vorgenommen wurde.
Sperren von Accounts nach mehrmaliger (Anzahl konfigurierbar) Fehleingabe der Zugangsdaten.
- für Zeitspanne sperren
- Freischaltung durch Administrator erforderlich
- Verdopplung der zeit zwischen den Eingaben, um die o.g. brute-force Attacken zu erschweren
Das System erfüllt Bedingungen Kerhoffschenn Prinzips: private Alben auch mit dem Wissen, wie die verzeichnisstruktur aufgebaut ist, nicht ohne die erforderlichen Berechtigungen angeschaut werden.
Es sind zum Betrieb des Systems keine 777-userrechte für Dateien oder Ordner erforderlich.
Sämtliche Useringaben (Benutzername, Passwort, Formulareingaben werden ausschließlich eine SSL-ververschlüsselte Verbindung verschickt.
zusammenfassend ist zum Thema Sicherheit zu sagen: solange die unterliegende Infrastruktur (siehe oben) nicht unsicher wird, gibt es zum aktuellen Zeitpunkt keine bekannte Sicherheitslücke.
Brute force Angriff auf Zugangskombinationen: ein brute-force Angriff auf die Zugangsdaten hat nur dann überhaupt die Chance auf einen Erfolg, wenn ein existierender alias verwendet wird.
ein Angreifer hat keine Chance, herauszufinden, ob ein zufällig gewählter Alias verwendet wird, oder nicht (beispielsweise durch zeit-Messungen des Antwortverhaltens des Servers).
Auch wenn der Account durch dreimalige Fehleingabe gesperrt wird (Anzahl frei wählbar) ergibt sich dadurch keine längere Verzögerung.
Erst wenn sich wieder mit der gültigen Kombination aus alias und Passwort eingeloggt wird, erhält der legitimierte User die Nachricht, dass der Account gesperrt ist.
Qualität
Geschäftsfälle (use-cases) von Anlegen, Ändern, Löschen von Nutzern, Alben, etc., werden kontinuierlich an den Stand der Entwicklung angepasst und nachgetestet.
- Verfügbarkeit | availability: wenn die unterliegende Infrastruktur (Apache- & mysql-Datenbank-Server bzw. die DNS-Server) nicht ausfallen ist dieses System 24/7 einsatzbereit. Für die Ausführung von cronjobs, Durchführung von Backups muss das System nicht deaktiviert werden, da die Prozesse im Hintergrund laufen können.
- Verlässlichkeit (reliability): Durch ständige Tests sichergestellt, dass das Sytem korrekt funktioniert.
- bBetriebssicherheit (safety): die Auswirkungen Fehlhandlungen oder Fehlfunktionen keine negativen Auswirkungen auf die Funktion des Gesamtsystems.
- Sicherheit (security): siehe dazu den Abschnitt Sicherheit
- Wartbarkeit | maintenability: durch Anwendung von Code-Conventions und anderer Richtlinien ist die Wartbarkeit gewährleistet.
- die an vielen Stellen eingesetzten und sehr hilfreichen
Selbstcheck
-funktionen erleichtern dem Webmaster beispielsweise das Auffinden von Deadlinks (fehlerhafte Verlinkungen auf Objekte wie Webseiten, Bilder, etc.), auf die dieser per E-Mail hingewiesen wird.
Besonderheiten
Suchmaschinenoptimierung
Das System bietet die Möglichkeit viele Daten, die für Suchmaschinenoptimierung von großer Bedeutung sind zu erstellen, zu protokollieren und komfortabel auszuwerten und darzustellen.
intrusion detection system (IDS)
Mögliche Angriffe werden dem / den Administratoren gemeldet.
Angreifer werden - so gut wie technisch realisierbar - für eine gewisse Zeit gesperrt.
letztes Update: 2010-03-18