CHANGELOG: 04.04.2013 > Blog - Sehr viele Bug wurden im Blog behoben, der Login (http://article.narwaro.com/login) funktioniert wieder richtig, auf der rechten Seite wurden Informationen hinzugefügt, sowie ein "Logout"-Buttton. Desweiteren wurde das Dashboard überarbeitet. Dort werden sehr viele Informationen angezeigt, allerdings erst für Admins und solche, die hierfür eingetragen sind. Wenn ihr am Beta-Testen teilnehmen wollt, könnt ihr mir gerne eine eMail unter admin@narwaro.com schreiben. Im Moment geht das nur persönlich, da ich gerne einen Ãœberblick über Beta-Tester haben möchte und mit diesen gerne Kontakt aufnehmen würde. Wen ihr auch Blog-Posts erstellen möchtet, könnt ihr mir mich auch gerne anschreiben. Für Moderatoren stehen auch die Türen für Bewerbungen offen. Einen ausführlichen Post zu diesem Thema findet ihr auch im Blog. - Bug behoben, dass man sich nicht mehr ausloggen konnte. Der Button am rechten Rand funktioniert nun korrekt und liefert keine Fehler mehr. Desweiteren wird statt "$_SESSION["username"]" nun der richtige Benutzername auf der rechten Seite angezeigt. - Bug behoben, dass man unter manchen Umständen nach Sekunden wieder ausgeloggt wurde. > Benutzerkontrollzentrum - Es wurden neue Escape-Funktionen auf jeder Seite hinzugefügt, sodass alle MySQL-Injections vor unbefugten Eingriffen geschützt sind. Es sind zwar schon seit geraumer zeit solche Funktionen vorhanden, diese hatten aber geringfügige Sicherheitslücken, sodass die komplette Libary neu geschrieben wurde. - Passwörter dürfen nun auch Leerzeichen verwenden. Das eingeben von leerzeichen in Passwörter is schon länger möglich, diese wurden aber aus den Passwörten entfernt. Das hatte zur Folge, dass sich manche User nicht mehr einloggen konnten. - Bug entfernt, dass man "# OR 1=1" als Passwort verwenden kann und damit theoretisch das Escaping umgehen konnte. Es wurde darufhin aber ein Datenbankfehler gemeldet, sodass man nicht weiter auf die Datenbank zugreifen konnte. - Bug behoben, dass manchmal ausgeloggte User als online angezeigt wurden. 25.12.2012 > Blog - Ich habe mal einen eigenen Blog programmiert und alles wichtige findet ihr dort in einem der ersten Posts 09.11.2012 > Reaktivierung der Website - Nach langer Zeit der Pause habe beschlossen, wieder etwas zu machen. Weitere Features werden in nächster Zeit stückweie kommen. Eines dieser Sachen wird eine Art Blog sein, mit Schwerpunkt auf Projekte und Artikel. Die Seite ist unter http://narwaro.com/article erriechbar und befindet sich derzeit noch NICHT online. Ein weiteres Update und ein Blogeintrag werden in naher Zeit folgen. 19.08.2012 > Neue Funktion: - Syntax: permissions([$permission], $user = $_SESSION["username"]) - Beschreibung: Mit dieser Funktion werden Rechte von Nutzern verwaltet und abgefragt. Dabei kann ein Benutzer abgegeben werden, wenn man ein Recht dazu hat, ansonsten wird immer der aktuelle Benutzer abgefragt. - Parameter-Liste: * $permission : Die anzugebende Permission. Dieser Parameter ist optional. Wird er spezifiziert, wird geprüft, ob die angegebene Permission existiert und wenn ja, abgefragt ob $user dieses Receht besitzt. Besitzt $user das Recht wird TRUE zurückgegeben. Ist dem nicht so, wird FALSE zurückgegeben. Tritt ein Fehler auf, wird ein T_ERROR übermittelt, die Aktuelle Anfrage abgebrochen und als $error ausgegeben. * $user : Der abzufragende Benutzer. Dieser Parameter ist standardmäßig der aktuelle Benutzer, wenn nichts anderes angegeben wird. Um einen anderen Benutzer abzufragen benötigt man die Permission "permission.user.other" oder einen Rang höher 5. - Anwendung: Die Funktion ersetzt gänzlich veralete Methoden der Permission-Abfrage z.B nach Rängen. Dies ermöglicht es, bestimmten Benutzern ein Rechtzuzuweisen, auch wenn sie das Recht von ihrem Rang her nicht besitzen. 07.08.2012 > Nach einer kleineren Sommerpause gibt es nun wieder ein paar Updates. Es sind nur ein paar kleine Neuerungen aber eine Reihe Bugfixes & Enhancments. Als Erste Neuerung wäre zu erwähnen, eine Funktion im Kontrollzentrum, mit der man zusätzlich zuden Bildern auch Videos hochladen und mit Metadaten versehen kann. An einem Plyer mit Flash arbeite ich bereits. Als nächstes habe ich eine Große Sicherheitslücke behoben, mit der man Datenbankabfragen möglicherweise manipulieren konnte. Dies betrifft vor allem ungesichterte GET- und POST-Variablen, die einfach in die Abfrage übernommen werden. Das ist eine sehr große Sicherheitslücke, war aber in keinem Fall gravierend gewesen, da ich sowieso sehr penibel auf Sicherheit achte. Weiter geht es im Kontrollzentrum (oder Login-Bereich, wie immer man es nenn möchte) wo ich weitere Optimierungen vorgenommen habe: Das alte Rangsystem wurde auf allen Seiten durch das verbesserte, neue Rangsystem ersetzt. 27.07.2012 - Weitere Sicherheitsänderungen > Umstellung der Hash-Verschlüsselung von MD5 auf SHA512 - Aufgrund der hohen Kollisionsanfälligkeit und des damit verbundenn Sicherheitsrisikos der 1992 und veralteten Hash-Funktion MD5 wurde sie durch die nahezu unknakbare Methode SHA-512 ersetzt. Die User sollten davon nichts weiter bemerken, beim ersten Login nach dem 27.07.2012 wird das Passwort mit der neuen Methode statt MD5 verschlüsselt. 24.07.2012 - Sicherheits- und Performance-Enhancements > Sicherheit bei hochgeladenen Bildern wurde erhöht. - Bilder liegen ab sofort über dem WWW-Root, was bedeutet, dass diese nicht mehr über eine URL aufgerufen werden können, sondern AUSSCHLIESSLICH über das Kontrollzentrum und nur wenn man die entsprechenden Berechtigungen hat. Wenn Bilder hochgeladen werden, werden diese ins ht-Root des Servers verschoben, von wo sie nicht mehr über das Internet aufgerufen werden können. Wenn eine Datei angefordert wird, prüft die Source-Pic, ob der Benutzer eingeloggt ist und die entsprechenden Rechte zum ansehen der Bilder hat. wenn dem nicht so ist, wird eine Fehlermeldung anstatt eines Bildes ausgegeben. Das erhöht die Sicherheit der hochgeladenen Bilder immens und ist (außer durch den Server zu hacken) nicht knackbar. 14.07.2012 - Bugfixes > Sicherheitslücke beim Login behoben. Wenn User eingeloggt sind, kann man sich nicht mehr einloggen. 12.07.2012 - Bugfixes und kleine Neuerungen im Login-Bereich > Avatare werden nicht mehr beim Backup gelöscht > Benutzerdefinierte Avatare können zurückgesetzt werden - Avatare werden wieder richtig gelöscht > Login-Bug behoben > "Online-Bug" behoben - Inaktive Benutzer werden nicht mehr als online angezeigt und ausgeloggt > Bug-Prävention: - Hochgeladene Avatare werden nicht unter dem ursprünglichen Dateinamen auf den Servern abgespeichert, sondern bekommen als Dateinamen einen zufälligen Alpha-numerischen 8-Byte-String wie "H5GK4S6L" und heißen dann nach dem oberen z.B. "H5GK4S6L.png". Bis dato wurde einfach eine Zeichenkette ermittelt, ohne zu prüfen, ob die Kette schon existiert. Das ist bei 2251875390625 möglichen Zeichenketten zwar nomal kein Problem, aber es birgt eine mögliche Sicherheits- und Performance- Lücke. Aus diesem Grund habe ich mich einer einfachen Lösung bedient. Zuvor wurde als Avatar der koplette Link, im Klartext: "http://narwaro.com/sys/ava/H5GK4S6L.png", gespeichert. Das habe ich geändert und in dieser Spalte wird nur noch der String gespeichert und in einer weiteren Spalte der Dateityp, z.B. .png oder .jpg oder .gif, gespeichert. Bei der Ausgabe des Avatars wird schließlich "http://narwaro.com/sys/ava/" + dem String und der Endung ausgegeben. 26.06.2012 - Änderungen im Login-Bereich > Benutzerkontrollzentrum hinzugefügt, (eigentlich nur überabrebeitet, aber in der früheren Version waren noch keine Funktionen enthalten) Funktionen: - Benutzer sperren / Benutzer entsperren: -> Dem gesperrten Benutzer wird beim Login eine Meldung angezeigt, dass sein Account bis auf weiteres geperrt wurde. - Benutzer löschen: -> Benutzer wird bei der Login-Abfrage aus der Datenbank ignoriert, Benutzer kann nicht sehen, ob sein Account jemals existiert hat. - Benutzerpasswort zurücksetzen: -> Ein Administrator setzt das alte Passwort des Benutzers auf ein neues zurück, welches an die E-Mail-Adresse des Nutzers geschickt wird und nach dem Login ändern muss. - Mail schreiben: -> Mit diser Funktion kann ein Admin die Mail-Adresse eines Benutzers sehen und ihm eine E-Mail schreiben. Diese Funktion sollte ursprünglich für Sofortnachrichten dienen, wurde aber bis auf weiters suspendiert. - Benutzerdaten ändern - Als Benutzer einloggen: -> Das macht es einem Admin möglich sich Zugang zu Benutzeraccounts zu verschaffen, ohne das Passwort kennen zu müssen. Es soll zur Ãœberprüfung fragwürdiger Accounts o.ö. dienen. Der Admin erhält einen zufälligen Key, also einen Schlüssel, mit welchem er sich einmal anmelden kann. Ist der Schlüssel benutzt, wird er aus der Datenbank gelöscht. Das soll Manipulation von Passwörtern verhindern, die weiterhin sicher mit InSecure (Hash) hinterlegt werden. > Bugfixes: - Login wieder möglich - Fälschlicher "Hacker-Fehler" wurde behoben (User konnten sich nicht mehr einloggen und ihnen wurde eine Meldung angezeigt, dass sie andere Accounts hacken würden) - Links als Moderator funktionieren endlich - "Login-Header" wurde hinzugefügt (Einheitliche Datei am Anfang aller Seiten des Login-Bereiches) - Avatar-Fehler gefixed (Hochgeladene Avatare wurden vom Server einige Stunden später gelöscht) - "Letzter Login" wird korrekt gespeichert und dargestellt. - Online-Zähler funktioniert wieder (teilweise) > Statisken hinzugefügt > Kommentarübersicht gesamt und Woche hinzugefügt