Sieht gut aus, die 3 
Das Problem mit dem af-Zugang trat nicht mehr auf.
Habe auch gleich noch einiges an Installationssachen getestet mit folgenden Ergebnissen:
================================================== =================
Fehler:
in VMSR.EasySetup.v3.0.0.ftp.php wird md5 statt $md5 verwendet, weswegen kein Login als normaler Benutzer möglich ist:
PHP-Code:
mysql_query("INSERT INTO ".$_SESSION["mysql_prfx"]."_kontodaten (uid,passwort,status,hinweis,kontostand) VALUES ('".$_POST['adm_id']."','".md5($_POST['adm_pass'])."','1','','0')");
================================================== =================
Fehler:
beim Anmelden neuer Benutzer wird in /content/intern/anmelden.php beim Eintragen des neuen Users der Status auf 1 (aktiviert) gesetzt.
================================================== =================
Mögliche Sicherheitslücke:
Mit vielen Wenns und Abers gibt es eine mögliche Sicherheitslücke (auf die ich jetzt nicht näher eingehen möchte), da als Nickname eine Zahl, also auch eine bereits eingetragene Klamm-ID, gewählt werden kann.
Schon beim Anmelden sollte beim Nicknamen mindestens eine Nicht-Ziffer erzwungen werden.
Betroffene Login-Abfrage in /lib/session.lib.php:
PHP-Code:
SELECT k.uid,
k.passwort,
k.status,
k.hinweis
FROM ".$db_prefix."_userdaten u
LEFT JOIN ".$db_prefix."_kontodaten k
ON k.uid=u.uid
WHERE (u.uid='".$_POST['nickname']."' OR u.nickname='".$_POST['nickname']."')
AND k.passwort='".$md5($_POST['passwort'])."'
LIMIT 1
================================================== =================
Verbesserungsvorschlag:
Da rand() identische Zufallswerte bei identischen Startwerten erzeugt, sollte
rand() ersetzt werden durch mt_rand() in:
/lib/functions.lib.php
/af/content/login.php
================================================== =================
Vereinfachungsvorschlag:
in /content/intern/anmelden.php:
PHP-Code:
if($_POST['newsletter'] == 0 and $_POST['paidmails'] == 0) {
$mailstatus = 0;
}
if($_POST['newsletter'] == 1 and $_POST['paidmails'] == 0) {
$mailstatus = 1;
}
if($_POST['newsletter'] == 0 and $_POST['paidmails'] == 1) {
$mailstatus = 2;
}
if($_POST['newsletter'] == 1 and $_POST['paidmails'] == 1) {
$mailstatus = 3;
}
kann ersetzt werden durch:
PHP-Code:
$mailstatus = (int)$_POST['newsletter'] + (int)$_POST['paidmails']*2;
Prüfungen auf zulässige Werte sollten vorher erfolgen, damit gültiger $mailstatus gesetzt wird.
================================================== =================
So, das war's erstmal