Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Anregungen gesucht wg. Formular-Spam ohne Captcha

Frage Entwicklung PHP

Mitglied: Codehunter

Codehunter (Level 2) - Jetzt verbinden

07.06.2010 um 09:03 Uhr, 4272 Aufrufe, 2 Kommentare

Hallo zusammen!

Das ist weniger eine konkrete Frage zu einem Scriptproblem sondern ich würde gern eure Meinungen und Erfahrungen mit Formular-Spam erfahren. Folgendes Szenario liegt bei mir vor:

Auf unserer Firmen-Website gibt es ein einfaches Kontaktformular. Seit einiger Zeit beobachte ich, daß Spambots das Formular "testen". Da wir keine Kopie des eingegebenen Textes an die eingegebene Absenderadresse schicken ist das reichlich sinnlos. Unsere Mitarbeiter müssen den Müll trotzdem sichten. Jetzt suche ich nach Möglichkeiten, Nachrichten von Bots gleich von vornherein nicht ins System zu lassen (nach außen hin aber normale Reaktion des Formulars "zur Tarnung")

Was ich von vornherein gleich ausschließe ist der Einsatz von Captchas.

Daher habe ich das Verhalten der Bots ein wenig analysiert und dabei ein paar Dinge festgestellt die man evtl. nutzen könnte. Zum einen rufen die Bots die Seite mit dem Formular nicht vorher ab (noch sonst irgendeine Seite) sondern werfen den POST-Request direkt an den Ziel-URL.

Daher war mein erster Gedanke, einen sessionabhängigen, dynamisch generierten Zufalls-Parameter an den POST-Target im Formular zu hängen, diesen in $_SESSION zu puffern und dann im POST-Target-Script einen 1:1-Vergleich zu machen. Funktioniert aber nur wenn der Client Cookies zuließe.

Zweitens werden ja auch sonst keine eingebetteten Inhalte wie z.B. Bilder geladen. Das brachte mich auf die zweite Idee, einfach irgendein unwichtiges Layout-Bild durch den PHP-Parser zu schicken ("getarnt" durch .htaccess-Rewrite-Anweisung) und dabei ein Flag in $_SESSION zu setzen. Hängt aber ebenfalls an den Cookies.

Drittens könnte ich einen berechneten Prüf-Parameter schon an die Links anhängen die zu unserem Kontaktformular führen welche dann auch an das POST-Target weitergereicht werden (das ginge sogar ohne aktive Session bzw. wenn jemand keine Cookies zuließe und so Möglichkeit 1 ausgehebelt wird). Der Prüf-Parameter hätte eine "Verfallszeit" von sagen wir 1 Stunde.

Viertens: Da die Bots auch keine HTTP-Header auswerten können wenn sie vorher nichts abrufen könnte ich auch einen "Location: www.irgendwo.de/irgendwas.php?check=irgendwas"-Header schicken.

Fünftens: Ich könnte das POST-Target über Rewrite-Rules veränderbar machen sodass sich die Links zum POST-Target ständig zufällig ändern wobei die Links zum POST-Target selbst zwar immer ins "Rewrite-Beuteschema" passen, aber so kodiert sind dass das Script hinter dem POST-Target daraus ebenfalls eine "Verfallszeit" berechnen können.

Sechstens: Die Namen der Formularfelder könnten dynamisch generiert werden wobei die Benennung einem bestimmten Schema folgt woraus sich eine "Verfallszeit" berechnen ließe.

Alle meine Ansätze hängen aber an der Tatsache daß die Spambots anscheinend aus einer Datenbank heraus die Links zum POST-Target sowie die Formularstruktur lesen ohne jedesmal die eigentliche Formularseite abzurufen (vermute mal aus "Performance-Gründen")

Daher habe ich noch nach einem zweiten Ansatz gesucht: Selbst wenn die Bots das Formular vorher abriefen, benötigen menschliche Nutzer deutlich länger um Texte einzugeben als Bots. Man könnte also bei obigen Ideen auch einen Start- und End-Zeitwert rein bringen und dann die Zeitspanne zwischen Formular-Abruf und POST-Request messen. Ist sie deutlich zu niedrig (sagen wir mal <20 Sekunden) spräche das auch für einen Bot.

Gibt es vielleicht noch ganz andere Ansätze, Formular-Spam-Bots das Leben schwerer zu machen?

Danke schon mal und Grüssle
Cody
Mitglied: Snowman25
07.06.2010 um 09:29 Uhr
Hallo Codehunter

Füge Blindfelder hinzu, welche per CSS versteckt werden bzw. in einen unsichtbaren Bereich verschoben werden. Bots füllen diese Felder aus. Menschen nicht. Wenn eines dieser Felder einen Inhalt hat, verwirfst du die Daten einfach.
Das WebsiteBaker-CMS benutzt diese Art der Spamabwehr automatisch. Dazu gibt es dann optional (wie im Beispiel auch) eine Prüfziffer mit Rechenaufgabe.

Siehe z.B.: http://gk-eventcatering.de/pages/kontakt.php
schaus dir einmal mit Stylesheets an, und dann ohne (Menü 'Ansicht' --> 'Webseiten-Stil' oder ähnlich)

Gruß
Snow
Bitte warten ..
Mitglied: maretz
07.06.2010 um 10:15 Uhr
Moin,

also ich würde das ganze über die Session lösen. Seien wir mal ehrlich: Wieviele Clients hast du die heute einen Cookie wirklich verweigern UND die für dich einen Relevanten Inhalt schicken? Mich dürfen jetzt hier gerne alle steinigen wenn ich sage das mich diese Postings von den "Ich will meinen Rechner so dicht wie möglich machen und bin eh paranoid"-Kiddys eh nicht intressieren würden. Wenn DIE mir was wichtiges zuschicken wollen können die auch meine Mail-Adresse nehmen und das per Mail zusenden.

Wer mir aber als normaler Besucher (d.h. 99,5% der Besucher vermutlich) etwas schicken will der hat normal auch nen 08/15-Browser (IE, Opera, FF,....) und da wird scho nicht mehr gefragt....
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
TK-Netze & Geräte
gelöst Fax-Ersatz gesucht - Brainstorming bzw. ANregungen (4)

Frage von hesper zum Thema TK-Netze & Geräte ...

Microsoft Office
Formular Autofill - Infopath (1)

Frage von TlBERlUS zum Thema Microsoft Office ...

Erkennung und -Abwehr
Spam mit eigener Domain (12)

Frage von NoobOne zum Thema Erkennung und -Abwehr ...

LAN, WAN, Wireless
Software für Backup oder Datensynchronisation über WAN gesucht (3)

Frage von Rubiks zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...