 |
PHP-Scripts: Wie man ein Forum vor Spammern schützt
Wer eine Leistungsstarkes PHP-Forum sucht, dem kann ich folgendes Paket empfehlen:
phpbb.com - Creating Communities Das Forum ist in PHP geschrieben und benötigt MySQL. Es bietet zahlreiche Features und kann individuell angepaßt werden (wenn man sich ein bißchen mit der Materie auskennt). [Diesen Link als ungültig melden]
Tuning-Tips für PHPBB: Spamschutz
Im Admin-Panel des PHPBB-Forums kann man das Registrierungs-Verfahren für neue Benutzer so einstellen, daß der Administrator neu angelegte Accounts erst freischalten muß. Damit kann man effektiv verhindern, daß ungebetene Gäste wie Spammer die Funktionen des Forums nutzen.
Einen kleinen Haken hat die Sache allerdings: Auch wenn ein Account noch nicht freigeschaltet wurde, erscheint der neue User mit seinen Daten in der Userliste. Agressive Website-Werber nutzen diese Möglichkeit, um auf ihre Seite aufmerksam zu machen. Der entsprechende Link bleibt so lange für alle Forumsteilnehmer sichtbar, bis der Admin den Account löscht.
Dagegen gibt es Abhilfe. Mit zwei kleinen Zeilen kann man dem Forum beibringen, nur freigeschaltete User-Accounts in den Listen anzuzeigen. Damit haben Spammer keine Chance mehr, für ihre Websites ungebetenerweise zu werben.
Die folgenden Anweisungen beziehen sich auf die Version 2.0.8 von PHPBB, dürften aber auch in nachfolgenden Releases Anwendung finden.
In der Datei includes/functions.php muß kurz vor Zeile 40 die hier rot hervorgehobe Zeile ergänzt werden:
case 'newestuser':
$sql = "SELECT user_id, username
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . "
AND user_active <> " . 0 . "
ORDER BY user_id DESC
LIMIT 1";
|
Damit wird bewirkt, daß neu eingetragene, aber noch nicht freigeschaltete User nicht mehr auf der Startseite des Forums unter "Der neueste Benutzer ist ..." angezeigt werden. Stattdessen wird hier nur noch der letzte freigeschaltete User gezeigt. (Allerdings werden bei der Zählung der registrierten User inaktive Accounts mitgezählt).
Außerdem muß in der Datei memberlist.php kurz vor Zeile 150 die hier rot hervorgehobe Zeile ergänzt werden:
FROM " . USERS_TABLE . "
WHERE user_id <> " . ANONYMOUS . "
AND user_active <> " . 0 . "
ORDER BY $order_by";
|
Damit werden neu eingetragene, aber noch nicht freigeschaltete User nicht mehr in der Memberlist aufgeführt.
Durch diese beiden Änderungen in PHPBB bleiben nicht freigeschaltete Accounts für die Öffentlichkeit unsichtbar - Spammer werden bald die Lust verlieren, sich vergebens in Ihr Forum einzutragen.
Zum Spaß kann man jetzt noch die Mailvorlage in der Datei language/Lang_english/email/admin_inactive.tpl um den hier rot hervorgehoben Passus ergänzen:
{WELCOME_MSG}
----------------------------
NOTE: Spammers have no chance - your userdata (including URLs) will not be displayed in any part of the forum until your account will be activated by the administrator. Give up, it's useless.
----------------------------
Please keep this email for your records. Your account information is as follows:
|
Damit weiß dann jeder, wer im Forum der Chef ist ... :)
Achtung: Sicherheitslücken in alten PHPBB-Versionen!
Wenn Sie eine ältere Version als PHPBB 2.0.13 betreiben, sollten Sie sich baldmöglichst die neueste Version holen - denn frühere Versionen enthalten zahlreiche bekannte Sicherheitslücken, auf die sich bereits Würmer spezialisiert haben, die Suchmaschinen nutzen, um verwundbare Foren aufzuspüren. Auf der Website von phpBB gibt es mittlerweile auch einen Security-Newsletter, der über aktuelle Probleme und Updates informiert.
phpbb.com - Creating Communities Offizielle Website von phpBB. [Diesen Link als ungültig melden]
|
 |
Guter Mailstil
Guter Stil
CC und BCC
Fußzeilen
Anhänge
Fotos mailen
HTML in Mails
Sicher Mailen
Fälschungen
Digitale Signatur
Wer liest mit?
Verschlüsselung
Viren
Ketten-Mails
Spam-Mails
Mailheader lesen
Endlich Linux!
Webdesign
Meine Projekte
Tipps & Tricks
Rechtliches
Hilfreiche Links
Freeware-Tips
Diverse Freeware
PHP-Scripting
Vorbemerkung
Unix-Timestamp
Foren-Tuning
Browser-Weiche
URLs umwandeln
|