Einfacher Spamschutz für das WBB2.3.5
#1
Guten Abend liebe Besucher des Netboards,

und wieder eine Nachricht bezüglich Spamschutz. Da ich bisher wirklich gute Erfahrungen mit dem Spamschutz in der WIW Shoutbox gemacht habe, gibt es diesen nun auch für das WBB2.3.5.

Eins sollte natürlich klar sein: Das System bietet sicherlich keinen 100% Schutz gegen Spam. Aber es kann ihn zumindest teilweise verhindern. Zusätzlich ist es einfacher als ein Sicherheitscode der, besonders beim Schreiben von Beiträgen den ein oder anderen stören könnte.

Nun noch ein Hinweis was dieser Spamschutz macht: Gäste müssen, bevor sie einen Beitrag schreiben können, einen Kasten aktivieren. Also ähnlich wie in der Shoutbox. User müssen dies natürlich nicht. Für sie ist also dieses Feld nicht sichtbar. Ich denke Donnerstag oder Freitag baue ich den Spamschutz dann auch hier im Board ein.


Nun zum Einbau:
Sicherung der Templates: addreply und newthread machen.
Sicherung der Dateien: addreply.php und newthread.php machen.

1. Öffne das Template addreply und suche folgendes:
Code:
<input class="input" type="submit" accesskey="S" value="{$lang->items['LANG_POST_REPLY']}" />
Füge darüber ein:
Code:
<if(!$wbbuserdata['userid'])>
<then>
<input class="input" type="submit" disabled value="Eintrag bestätigen:" />
<input type="checkbox" class="input" name="CheckEntry1" value="1">
</then><else>
<input type="hidden" class="input" name="CheckEntry1" value="1" checked>
</else>
</if>

2. Öffne das Template newthread und suche folgendes:
Code:
<input class="input" type="submit" accesskey="S" value="{$lang->items['LANG_POST_NEWTHREAD']}" />
Füge darüber ein:
Code:
<if(!$wbbuserdata['userid'])>
<then>
<input class="input" type="submit" disabled value="Eintrag bestätigen:" />
<input type="checkbox" class="input" name="CheckEntry" value="1">
</then><else>
<input type="hidden" class="input" name="CheckEntry" value="1" checked>
</else>
</if>


3. Öffne die Datei addreply.php und suche folgendes:
Code:
if (!$message) $error .= $lang->items['LANG_POSTINGS_ERROR1'];
ersetze es mit:
Code:
if (!$message || !$_REQUEST[CheckEntry1]) $error .= $lang->items['LANG_POSTINGS_ERROR1'];

4. Öffne die Datei newthread.php und suche folgendes:
Code:
if (!$topic || !$message || ($board['prefixuse'] > 0 && checkpermissions('can_use_prefix') && $board['prefixrequired'] == 1 && !$prefix)) $error .= $lang->items['LANG_POSTINGS_ERROR1'];
ersetze es mit:
Code:
if (!$topic || !$_REQUEST[CheckEntry] || !$message || ($board['prefixuse'] > 0 && checkpermissions('can_use_prefix') && $board['prefixrequired'] == 1 && !$prefix)) $error .= $lang->items['LANG_POSTINGS_ERROR1'];


Das wars schon, hoffentlich habe ich nichts vergessen. Ich übernehme keine Haftung für Schäden, die durch diese Änderung entstanden sind. Am besten immer Backups machen!

Fragen einfach in diesen Thread schreiben. Ich würde mich über eure Erfahrung mit diesem Script freuen.

Danke,
euer Pattex
  Zitieren
#2
BTW: vielleicht sollte man nicht nur die templates sondern auch die Datenbank sichern. Ist zwar unwahrscheinlich, dass dabei etwas die DB schrottet aber unverhofft kommt oft. :meinung:

Ansonsten halte ich diese Scripterweiterung für eine sehr gute Idee! :daumen:

Der Erfolg in der Shoutbox hat selbst mich überrascht!
  Zitieren
#3
Zitat:Der Erfolg in der Shoutbox hat selbst mich überrascht!
Nicht nur dich Wink Nur bleibt halt die Frage, was ein Bot macht, der speziell für das WBB programmiert wurde. Der wird evtl. einfach alle Felder ausfüllen/aktivieren. Aber das werden wir schon noch sehen.

Ansonsten hast du recht, lieber eine Sicherung mehr als zu wenig auch wenn eigentlich nichts passieren kann.
  Zitieren
#4
Wüsste sowieso gerne mal, wie diese Bots funktionieren. Gibt es dazu irgendwo Infos? :kopfkratz:
  Zitieren
#5
funktionsweise hm
das kann man denk ich schwer sagen da die sich von bot zu bot unterscheidet
vor allem bei höher entwickelten gibt es kaum noch einen unterschied beim verhalten gegenüber einem standard user

außerdem sind die bot entwickler hier im vorteil da auch neue sicherheitsmaßnahmen relativ schnell aushebelbar sind da man bei den meisten sofort sieht wie sie funktionieren (zb auch das mit dem anhacken bzw abhacker einer checkbox)

ich denke es ist sogar nur eine frage der zeit bis sich bots selbständig registrieren und dann als registrierter user in foren posten, der aufwand wäre hier nicht das problem
zumindest da kann man aber den schutz mittels zahlen/buchstaben in ner grafik nehmen (noch)

aber ich glaube auch das wird nicht mehr lange halten
OCR funktionen werden immer zuverlässiger und die rechenleistung steigt ständig, da dürfte es bald auch möglich sein diesen schutz zu umgehen
noch stärkere verfälschung der buchstaben/zahlen kannst du hier auch nicht wirklich verwenden da der user diese ansonsten nicht mehr lesen kann

da fragt man sich echt was die zukunft bringt Wink
  Zitieren
#6
hat schonmal jemand versucht die textfelder in die man den text schreibt umzunennen?

oder ist das zuviel arbeit. ich mein der bot in den gästebüchern ist ja speziell für das wbb programmiert und wenn die felder nicht mehr den gleichen namen haben gibts auch keine einträge


allerdings wäre auch das nur eine sache die nur vorrübergehend wirkt und sobald es mehr als 10 personen machen werden es wohl wieder bots geben die auch dahinter steigen


genau wie damals einfach den new entry button umzunennen
  Zitieren
#7
Hallo zusammen Wink

hm... das Thema ist ja schon ne Ecke älter, aber ich hoffe es gibt trotzdem noch Support dafür Big Grin

Ich hab den Spamschutz bei mir eingebaut... nur leider habe ich jetzt das Problem, dass meine registrierten Benutzer das Themafeld in der Antwortmaske immer ausfüllen müssen da ansonsten die Meldung kommt "es ist nicht alles ausgefüllt worden" (oder so ähnlich).

Das stört ein wenig, denn eigentlich fände ich es besser wenn es einem freigestellt wäre ob man das Themafeld ausfüllen möchte, oder halt nicht.

Könnte man das wieder ändern?


Danke schonmal im Voraus Big Grin
  Zitieren
#8
Passiert das nur wenn sie auf ein Thema antworten? Vielleicht hast du ja die Dateien verwechselt.

In der Addreply muss stehen:
Code:
if (!$message || !$_REQUEST[CheckEntry1]) $error .= $lang->items['LANG_POSTINGS_ERROR1'];

Smile
  Zitieren
#9
Hi pattex,

Ja genau, das passiert nur, wenn die User antworten möchten.

Hm... ich hab gerade nochmal alles kontrolliert und soweit ich sehen konnte hab ich nirgendwo einen Fehler gemacht.

Ich häng mal meine addreply.php an, vielleicht hakt es ja auch an anderer Stelle :äh:


Angehängte Dateien
.txt   addreply.txt (Größe: 26,08 KB / Downloads: 461)
  Zitieren
#10
In der addreply sehe ich nun keine Probleme. Vielleicht liegt es ja am Template. Kannst du noch das addreply Template anhängen? Danke Smile
  Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste