#1 Bestimmte Gäste sperren von Wolfgang 26.08.2009 19:35

avatar

Hallo Florian,
in meinem Forum ist neuerdings ein Spamer (Herkunft Russland), der sich auch in anderen Foren einträgt.
Kann man mit Hilfe eines Scriptes über den Namen oder noch besser über die IP-Adresse (unter "Edit - Überblick für Moderatoren und Administratoren" zu sehen) den Gast sperren
Dieser Gast trägt sich immer mit dem gleichen Namen ein (Mazzurbaf).

Gruß
Wolfgang

#2 RE: Bestimmte Gäste sperren von florian-zier 27.08.2009 15:37

avatar

Hallo Wolfgang,
bestimmte Leute zu sperren ist natürlich immer eine schwierige Sache.
Grundsätzlich könnte man ihn bestimmt durch vieles von anderen unterscheiden, aber eine wechselnde IP-Adresse würde das nur temporär möglich machen.
Ich schlage vor, dass du immer die IP-Adressen vergleichst.
Sollte es doch eine gleichbleibende sein, wäre dies natürlich optimal.

Ich schätze mal, dass er sich nicht immer neu mit eMail registriert, wobei dann die eMail-Blacklist nutzlos sein wird.

Das Problem beim Namen ist, dass er ihn ändern könnte.
z.B. könnte er sich als MazZurBaF eintragen, das Skript sollte sich dann einfach nicht durch Groß-/Klein-Schreibung beirren lassen.
Aber ein anderer Name können wir eben leider nicht dadurch ausschließen.
Es bleibt nur zu hoffen, dass der Spammer evtl. ein dummer Bot ist, der sich nicht mit anderem Namen einträgt.
Falls er ein Mensch ist, dann besteht natürlich die Gefahr, dass er sich noch angespornt fühlt...

Irgendwo im Template gab es zumindest einmal eine Funktion, die Formular-Felder beim Eintragen prüft.
Diese müsste ich aber zuerst einmal finden.
Damit hoffe ich dann, ein Skript erstellen zu können, welches wirksam ist.
Dabei muss der Spammer aber auch Javascript aktiviert haben!
PHP-Zugriff bleibt eben nur HPM vorbehalten, uns bleibt nur Javascript übrig.

Vielleicht findest du ja noch eine Statistik, welche mehrere Infos zu den Seitenbesuchern auslesen kann, z.B. ob Javascript aktiviert war oder nicht.
Dann könntest du feststellen, ob zur IP-Adresse des Spam-Eintrags in der Statistik mehrere Infos zugeteilt werden könnten.
Jede Information könnte nützlich sein...


Ich werde versuchen, eine Lösung zu finden.
Hoffentlich wird dann dein Forum spam-frei...

#3 RE: Bestimmte Gäste sperren von florian-zier 27.08.2009 16:54

avatar

Hallo Wolfgang,
ich denke, dass ich eine einigermaßen gute Lösung gefunden habe.

Dazu muss das Template-Element Neuen Beitrag schreiben bearbeitet werden.
Folgender Quellcode wird gleich eingefügt nach:

1
function chkFormular() {

1
2
3
4
5
6
7
8
9
10
11
12
13
var wrongNames = new Array('Mazzurbaf', 'Mazzurbaf2', 'Mazzurbaf3');
var AlertMessageText = 'User nicht erlaubt!';
var showAlertMessage = false;
var NameField = document.newms.name;
for (i=0; i<wrongNames.length; i++) {
if(NameField.value.toLowerCase() == wrongNames[i].toLowerCase()) {
if (showAlertMessage == true) {
alert(AlertMessageText);
}
NameField.focus();
return false;
}
}




in diesem Skript kannst du den Anzeigetext bei einem nicht zugelassenen Namen ändern.
Um Spammern keine Hinweise zu geben, kannst du den Anzeige-Text entweder mit einer nichts aussagenden Meldung belegen (z.B.: 'technische Probleme' ) oder einfach showAlertMessage auf false setzen, damit keine Meldung angezeigt wird.
Das Formular wird dann einfach nicht abgeschickt, es passiert also nix.
Die Variable wrongNames kann mehrere verbotene Namen enthalten, sie müssen nur innerhalb new Array(...) in "-Zeichen stehen und durch Kommas separiert werden.


Viel Glück mit diesem Skript, ich hoffe, dass es hilft.

#4 RE: Bestimmte Gäste sperren von Wolfgang 28.08.2009 11:43

avatar

Hallo Florian,
mal wieder eine super Lösung. Funktioniert tadellos!

Danke und viele Grüße
Wolfgang

#5 RE: Bestimmte Gäste sperren von 30.08.2009 12:05

Habs ausprobiert als Test mal mit meinem eigenen Namen aber es wird abgeschickt!

#6 RE: Bestimmte Gäste sperren von florian-zier 30.08.2009 19:02

avatar

Hallo unbekannt,
so ist es schwer, eine Aussage zu treffen.
Aber sollte nur ein Zeichen hinzugefügt/entfernt werden, stimmt der Name natürlich nicht mehr mit den gesperrten überein.
Groß- und Kleinschreibung sollten eigentlich egal sein.

Außerdem ist es zwingend erforderlich, dass Javascript aktiviert ist, eine PHP-Lösung könnte nur HPM selbst einbauen.

Ansonsten hilft evtl. Einsicht in die Einbau-Stelle oder eine Testseite.
Die nicht zugelassenen Namen müssen aber auch alle in der "Liste" definiert werden:

1
var wrongNames = new Array('Mazzurbaf', 'Mazzurbaf2', 'Mazzurbaf3');


Ersetze und ergänze einfach jeweils "Mazzurbaf" ... durch durch die Namen, die gesperrt werden sollen.

#7 RE: Bestimmte Gäste sperren von 31.08.2009 14:59

Habe ich. Test weise meinen Acc namen Christoph. 3mal überprüft aber ich kann schreiben. Bezieht sich das vllt. nur auf Gäste? Kann man das auch mit Mitgliedern?

#8 RE: Bestimmte Gäste sperren von florian-zier 01.09.2009 18:01

avatar

Hallo,
ich glaube jetzt verstehe ich dein Problem.
Es geht eigentlich nur bei unregistrierten Nutzern, da das Name-Feld im Template nur generiert wird, wenn der User nicht angemeldet ist.

Mit ein paar kleinen Änderungen können aber auch angemeldete Nutzer verweigert werden.
Auch wenn es eigentlich sinnvoller wäre, diese in eine eingeschränktere Benutzer-Gruppe zu stecken.

Das Skript braucht allerdings Zugriff auf die Template-Variablen, deshalb kann es nicht wie das vorherige Skript in eine globale Variable verpackt werden.
Komischerweise wurden die globalen Variablen nicht gleich so definiert, dass sie Variablen aus dem Template lesen können.
Die Einbau-Stelle bleibt ansonsten gleich.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var wrongNames = new Array('', 'Mazzurbaf');
var AlertMessageText = 'Bitte einen korrekten User-Namen angeben!';
var showAlertMessage = true;
if (document.newms.name) {
var NameField = document.newms.name;
var Name = NameField.value;
} else {
var NameField = null;
var Name = '{{user_name}}'
}
for (i=0; i<wrongNames.length; i++) {
if(Name.toLowerCase() == wrongNames[i].toLowerCase()) {
if (showAlertMessage == true) {
alert(AlertMessageText);
}
if (NameField != null) {
NameField.focus();
}
return false;
}
}


Es ist im Moment so eingestellt, dass eine Fehlermeldung erscheint.
Außerdem werden nun auch Beiträge geblockt, bei denen kein Username angegeben wurde.
Es existieren andere Skripte, bei denen ein leerer Username automatisch als Gast eingetragen wird.

#9 RE: Bestimmte Gäste sperren von florian-zier 02.09.2009 20:33

avatar

Ich habe nun nochmals eine überarbeitete und erweiterte Version des Skripts bereitgestellt.
Es kann sowohl unangemeldete als auch angemeldete Usernamen blocken.
Außerdem kann nun gewählt werden, was bei einem leeren Usernamen-Feld passieren soll.
Es kann entweder (k)eine Fehlermeldung ausgegeben werden und die Seite wird nicht abgeschickt.
Alternativ wird der leere Username durch "Gast" o.ä. ersetzt.

Man beachte dazu die Kommentare oben im Skript.
(Die Einrücken der Kommentare stimmern evtl. nicht mit denen in meinem Editor überein. )

Hier geht's zum Beitrag.

#10 RE: Bestimmte Gäste sperren von Wolfgang 01.10.2009 00:40

avatar


Hallo,
ich habe etwas festgestellt.

Man muß das Script wie folgt einzubauen, sonst funktionieren die Fehlermeldungen bei fehlenden Eingaben nicht.
Das Script wird, wie gesagt im Template "Neuen Beitrag schreiben" eingefügt.


Rot=Neues Script Schwarz=Vorhandenes Script


<script language="JavaScript" type="text/javascript">
function chkFormular() {

if(document.getElementById('messagetext').value == "") {
alert("{[new_no_message]}");
document.getElementById('messagetext').focus();
return false;
}
if(document.getElementById('messagetitle').value == "") {
alert("{[new_no_subject]}");
document.getElementById('messagetitle').focus();
return false;
}
var wrongNames = new Array('', 'Mazzurbaf');
var AlertMessageText = 'Bitte einen korrekten User-Namen angeben!';
var showAlertMessage = true;
if (document.newms.name) {
var NameField = document.newms.name;
var Name = NameField.value;
} else {
var NameField = null;
var Name = '{{user_name}}'
}
for (i=0; i<wrongNames.length; i++) {
if(Name.toLowerCase() == wrongNames[i].toLowerCase()) {
if (showAlertMessage == true) {
alert(AlertMessageText);
}
if (NameField != null) {
NameField.focus();
}
return false;
}

}
}







Bis dann
Wolfgang

#11 RE: Bestimmte Gäste sperren von florian-zier 01.10.2009 13:57

avatar

Hallo Wolfgang,
vielen Dank für deine Rückmeldung!

Xobor Forum Software von Xobor
Einfach ein eigenes Forum erstellen
Datenschutz