Seite 1 von 1

Hier mal mein kleiner Denkansatz...

Verfasst: Mi 04.Okt, 2006 23:15
von schmidtedv
Ich habe ein Kundenforum, wo die Benutzer sich einfach anmelden können...naja, und da kommt halt viel "Mist" zustande...da hab ich ein wenig mit dem MOD "Webside Signature Remove 1.1.11 MOD" rumgespielt und folgendes erstellt:

Alle extra Profilangaben wie Homepage, Beruf, Wohnort , Interessen und Signatur (mehr gibt's bei mir halt nicht) werden bei Registrierung erstmal ausgeblendet und statt dessen ein Hinweistext angegeben, das nach erfolgreicher Registrierung mehr Angaben gemacht werden können. Sollte nun ein "Bot" sich dennoch mittels versteckter Eingaben hier anmelden wollen wird er geblockt und zudem die IP-Adresse gebannt...nett, oder? :-)

Hier mal ein paar code-Auszüge aus der usercp_register.php:

Der Ban-Block:

Code: Alles auswählen

if (($mode == 'register') && (($signature != '')||($website != '')||($location != '')||($occupation != '')||($interests != ''))) {
        $sql = "INSERT INTO ".BANLIST_TABLE." (`ban_ip`) VALUES ('".$userdata['session_ip']."')";
        if (!$db->sql_query($sql)) {
            message_die(GENERAL_ERROR, "Couldn't insert ban_ip info into database", "", __LINE__, __FILE__, $sql);
        }
        session_end($userdata['session_id'], $userdata['user_id']);
        message_die(GENERAL_ERROR, 'Protected by Schmidt EDV');
    }
Die erweiterte switch-Zeile (bei mir sind Signaturen zudem im ACP abschaltbar und noch ein paar andere extras mit Homepage und so drin...):

Code: Alles auswählen

if ($mode !== 'register') {
        if ($userdata['user_edit_profile']) {
            $template->assign_block_vars('switch_profile_edit_allowed', array());
        } else {
            $template->assign_block_vars('switch_profile_edit_disallowed', array());
        }
    } else {
        $template->assign_block_vars('switch_profile_register', array());
    }
Frage (es scheint so perfekt zu funktionieren) hier wärenur, ob ich ($mode !== 'register') so richtig (also als code) geschrieben habe...hab so eine zeile sonst in der Datei nicht entdeckt, und ich bin halt nicht sooooo php-bewandert, ob das die korrekte "mode-verneinung" darstellt...

Wenn's auf Interesse stößt, kann ich's hier auch ausführlicher beschreiben :-)

Verfasst: Do 05.Okt, 2006 00:04
von oxpus
Das wäre zunächst korrekt, aber es könnte unter wiedrigsten Umständen dazu kommen, daß "mode" nicht eben dem Type "register" entspricht.
Ein

Code: Alles auswählen

$mode != 'register'
reicht also hier demnach aus.
Ansonsten ist es okay.

Verfasst: Do 05.Okt, 2006 00:58
von schmidtedv
d.h. also ein gleichheitszeichen aus der zeile wegnehmen?

PS: Hab nun noch, da ja in ausnahmefällen dynamische IP'ssich überschneiden könneund somit mit dem IP-Bann auch mal ein regulärer Benutzer gebannt werden könnte noch eine Option mit Erklärung ins ACP /Board-Konfig eingebaut,wodie IP-Bannun zusätzlih aktiviert/deaktiviert werden kann....möp, komplett....bis auf die Frage zu deiner Code-Anmerkung, Oxpus :-)


...oh mann, je später der abend, desto abstruser die rechtschreibung..naja, ich lass den post mal so :-)

Verfasst: Do 05.Okt, 2006 07:51
von oxpus
Zur Erklärung schau mal hier rein: http://www.oxpus.de/viewtopic.php?t=2645

Verfasst: Do 05.Okt, 2006 08:42
von schmidtedv
...döngel!

Anbei mal 2 Beispielansichten zur Erläuterung

Verfasst: Do 05.Okt, 2006 14:20
von oxpus
Nicht übel. Garnicht mal übel...

Verfasst: Do 05.Okt, 2006 17:53
von tom10
Kannst Du daraus vielleicht ein Mod oder Addon machen ? Da hätten dann alle was davon und auch ich würde das dann gern bei mir verbauen....

Verfasst: Do 05.Okt, 2006 18:53
von schmidtedv
@tom10: ich werd' schauen...die anpassungen sind nicht überwiegend, also sollte ich's für n vanilla hier "mod"-artig einstellen können...aber bitte erst am Wochenende...bis dahin bin ich noch am "aufräumen"

Verfasst: Fr 06.Okt, 2006 05:45
von tom10
Na sicher doch, lass dir Zeit bin am WE auch schon verplant.

Verfasst: So 08.Okt, 2006 14:14
von smarty
ui, da habsch auch Interesse. Auf einem Board hatten sich letzte Woche über 20 Bots angemeldet *grummel*

Verfasst: So 08.Okt, 2006 22:36
von schmidtedv
...wird wohl mitte der woche werden...sorry

EDIT: Noch nicht genug Zeit...ich muss das Ding umschreiben für euch....meine Version ist so nicht einfach nutzbar, da ich weitere Anpassungen damit kombiniert habe...

Verfasst: Mo 11.Dez, 2006 10:05
von Holger
Habe ich das so richtig verstanden?
- Es werden während der Registrierung nicht alle Felder angezeigt.
- Nach der Registrierung kann man im Profil alle Felder sehen.
- Bots, die versuchen über die URL unsichtbare Felder zu füllen, werden abgewiesen.

?

Verfasst: Mo 11.Dez, 2006 10:45
von oxpus
Ja.
Und das wäre auch nicht schwer umzusetzen.
Lediglich in einem "Vergleichs-Array" alle Felder hinterlegen, die zur Registrierung verwendet werden dürfen, dann mit

Code: Alles auswählen

foreach($HTTP_POST_VARS as $key => $value)
die übergebenen Daten prüfen und wenn ein $key gefunden wird, der (wird ja nur definiert, wenn er auch einen Wert $value enthält) nicht im "Vergleichs-Array" enthalten ist, das Script anhalten.
Ein einfaches exit; würde reichen, spart SQL_Queries und Traffic, alles andere wäre verständlicher für die "echten" Registrierungen, bzw. würde als Log dienen können...

Also mal so groß umrissen...