You are not logged in.

  • Login

1

Saturday, June 3rd 2006, 8:20pm

Spambots unter phpBB verhindern

Hi!

kann man was gegen diese Spambots tun? Die netten kleinen Bildchen helfen da wohl leider auch nicht.
Vllt hilft ja ein Button, der sich erst nach 30sec zeigt (z.B. beim Disclaimer) oder eine einfache logische Frage, wo man aus einer Auswahlliste eine Antwort auswählen muss.

Grüße,
Max123

2

Sunday, June 4th 2006, 1:58pm

Alles was es für den User komplizierter macht ist nicht nutzbar ;-)

Aber bin auf eine (so denke ich) ganz gute Idee gekommen
Manche denken jetzt: Behalts lieber für dich, bevor der Mechanismus wieder ausgehebelt wird.
Aber ich probiers einfach mal aus. Ich denke, dass Spambots nur großflächig funktionieren und kaum individuelle Anpassungen haben, daher wirds funktionieren :lol:

Die Anpassung bewirkt, dass 15 Sekunden seit Aufruf der Formularseite und dem Eintrag in die Datenbank vergangen sein müssen

Hier etwas detaillierter, falls es andere nachahmen wollen
Ich hab in der templates/subSilver/profile_add_body.tpl ein verstecktes Feld integriert, welches den Zeitstempel wiedergibt

HTML Code

1
2
3
4
5
<form action="{S_PROFILE_ACTION}" {S_FORM_ENCTYPE} method="post">
<input type="hidden" name="nospam" value="{timestamp}" />
 
{ERROR_BOX}
...


dann war die Datei includes/usercp_register dran

dort im template parser die time-Variable ergänzen

PHP Quellcode

1
2
3
4
5
6
$template->assign_vars(array(
		'timestamp' => time(),
                'USERNAME' => isset($username) ? $username : '',
                'CUR_PASSWORD' => isset($cur_password) ? $cur_password : '',
                'NEW_PASSWORD' => isset($new_password) ? $new_password : '',
                ...


und irgendwo vor dem einfügen in die datenbank eine abfrage ergänzen, dass 15 Sekunden seit Aufruf des Formulars vergangen sein müssen

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
else
	{
		....                        
 
	if(!isset($_POST['nospam']) || $_POST['nospam'] > time() - 10)
	        die('Du warst zu schnell f&uuml;r uns!');
 
	//
	// Get current date
	//
	$sql = "INSERT INTO " . USERS_TABLE . " (user_id, username, user_regdate, user_password, user_email, user_icq, user_website, user_occ, user_from, user_interests, user_sig, user_sig_bbcode_uid, user_avatar, user_avatar_type, user_viewemail, user_aim, user_yim, user_msnm, user_attachsig, user_allowsmile, user_allowhtml, user_allowbbcode, user_allow_viewonline, user_no


Wie gesagt.. mit ein individuellem hack sehr leicht auszuhebeln.. aber es ist ein experiment - mal sehen wie lange es schützt

3

Sunday, June 4th 2006, 2:35pm

D.h. zwischen Aufruf der Seite mit den Daten und dem abschicken der Daten müssen 15sec liegen?

Gute Idee, ich bin gespannt! :)

4

Sunday, June 4th 2006, 3:20pm

das gilt nur für die Registrierung richtig?
Für Posts wäre das nicht so sinnvoll glaub ich, da man ja auch mal schnelle Posts macht.

Aber für die Reg. find ichs ne gute Idee

5

Sunday, June 4th 2006, 10:50pm

klar, nur für die registrierung


//EDIT 06.06.2006

Kleine Ergänzung.
Spambots nehmen natürlich nicht das Original Formular, daher wird _POST[nospam] gar nicht gesetzt, wird als NULL behandelt und der bot konnte das formular passieren.

jetzt überprüfe ich noch ob nospam gesetzt ist..

6

Wednesday, June 7th 2006, 11:20am

ICh weiss nciht, ob es beabsichtigt ist, daber zumindest in den Unterforen von "Jobabgebote" haben Gäste Schreibrechte für Themen. Ich denke es hilft auf jeden Fall, wenn Schreibrechte für Gäste entfernt werden.

7

Wednesday, June 7th 2006, 12:19pm

ja, in den jobforen war es beabsichtigt

bisher hatte sich noch kein spambot dorthin verirrt..
ich änders nachher

8

Sunday, June 18th 2006, 11:28am

Anscheinend funktioniert es doch noch nicht so ganz! :)

Gibt es immer noch das Problem mit _POST[nospam] = 0?

9

Sunday, June 18th 2006, 2:09pm

du meinst wegen Mia?
die hat sich garantiert manuell angemeldet.. die Posts waren nicht alle zur exakt gleichen Zeit und außerdem hat sie eine E-Mail Adresse mit Vor- und Zuname angegeben

also ich bin mit der Anti-Spam Maßnahme bisher zufrieden..
Vielleicht sollt ich ein Honeypot Projekt starten und IP Adressen, Benutzernamen und E-Mail Adressen veröffentlichen

10

Friday, February 16th 2007, 4:54pm

Hallo

Gibt es auch schon eine Lösung fürs:

vBulletin Version 2.2.9

?????

RichBone

11

Friday, February 16th 2007, 6:05pm

Die Lösung heißt Inidividualität.
Sicherlich lässt sich genau diese Lösung auch aufs vBulletin übertragen. Du musst eben das "Template mit der Registrierung" und die "Funktion mit der Überprüfung" kennen.

12

Tuesday, July 27th 2010, 4:33pm

darf ich diesen thread mal aufgreifen :)

wie sieht es aus wenn ich über css meine form fields "dynamisch" anordne

zb.

HTML Code

1
2
3
<input name="feld1_angezeigt_als_feld2" type="text"><span class="text1_angezeigt_als_text3">e-mail</span>
<input name="feld2_angezeigt_als_feld3" type="text"><span class="text2_angezeigt_als_text1">user-name</span>
<input name="feld3_angezeigt_als_feld1" type="text"><span class="text3_angezeigt_als_text2">password</span>


angezeigt würde dann
[feld3] user-name
[feld1] password
[feld2] e-mail

kann man mit sowas die bots "austricksen" ?

13

Tuesday, July 27th 2010, 6:20pm

HiHo,

Eine Aufwendigere Lösung währe, so nutze ich es für das phpBB3.

Prüfen ob das Registrierungsformular über einen Bwrowser aufgerufen worden ist, wenn nicht auf google umleiten.
Allerdings sollte man da immer schauen das man alle Brwoser mit einschlisst.

Zusätzlich ist das Posten eines Links oder images in den ersten 3 Beiträgen nicht gestattet

14

Tuesday, July 27th 2010, 10:41pm

Hmm, also ich hab gute Erfahrungen mit qualifizierten Fragen gemacht. Je nach Inhalt der Seite lassen sich Fragen und Antworten entwickeln, die nur User wissen oder beantworten können.

Wofür genau versuchst du denn einen Spamschutz zu entwickeln? Für ein phpBB?

15

Wednesday, July 28th 2010, 8:40am

Also ich finde meinen Spamschutz, den ich vor 3 Jahren entwickelt habe und wie er oben erläutert wird immer noch am besten ;)
Zeitstempel versteckt im Formular unterbringen und beim sichern prüfen, dass er mindestens 10 Sekunden alt ist.

@Tigerente: Dein Schutz arbeitet mit der Reihenfolge der POST Elemente? Da assoziative Arrays gehasht sind und die Reihenfolge im Allgemeinen egal ist, weiß ich nicht ob sich jeder Browser an die Reihenfolge hält. Wenn das mit den gängigen Browsern funktioniert - warum nicht!

16

Wednesday, July 28th 2010, 2:23pm

naja nicht ganz :)

die Reihenfolge ist mir eigentlich wayne.
meine form fields haben von haus aus schonmal keine namen wie "username" und "password" sondern vielmehr eine gecryptete
(Salt) - Datum/Uhrzeit (tages- bzw. stundenwechsel inklusive - aufruf 01.01.1900-23:58 |absenden 02.01.1900-00:02 klappt trotzdem)
+ username oder userpass
und das ganze als md5/sha1 o.ä.
dem user ist es ja schliesslich egal wie das formfield heisst solange er/sie weis was dort eingetragen werden soll :)
bei der ausgabe werden die felder halt nicht in der gleichen reihenfolge (sondern random sortiert) ausgegeben und über css an der stelle angezeigt, wo sie hingehören.

das klappt natürlich nur, wenn die bots nicht via <<tab>> von einem eingabefeld ins nächste springen

meine frage sollte eigentlich darauf abzielen :)

also zusammengefasst haben meine formfields in regelmäßigen abständen neue nicht eindeutig verifizierbare namen und die ausgabe der formfields ist zufallsbedingt (durch javascript und css wird die funktionalität so gestalltet, dass der user dieses formular nicht von einem "normalen" unterscheiden kann - hoffe ich)

@d0nut : Quellcode gibts nach fertigstellung zum download, damit du den mal begutachten kannst :D

17

Wednesday, July 28th 2010, 6:30pm

hm. und was passiert wenn der bot in jedes Feld das selbe einträgt? Formularnamen sind Bots eigentlich egal. Die füllen einfach alles aus.
Namen die sie zuordnen können intelligenter als andere. Aber mitsenden tun sie alles.

Similar threads

Social bookmarks