SPAMS von Kontaktformular

maconaut schrieb:
Naja - bei mouseover könnte ja der Text vorgelesen werden.... Nichts gegen Accessibility - aber welche Seite bitte schön ist accessible? Ich rufe eine solche zum Test erstmal mit Lynx auf - wenn dieser scheitert, dann scheitert auch jeder Screenreader....
Wenn Mouseover den Text anzeigt, steht er ja doch wieder im Klartext drin und ist auch Bot-lesbar (wobei der Bot natuerlich danach suchen muesste, ist also schon mal besser als nichts).

Was "Accessibility" angeht: viele der grossen Seiten sind textbrowsergeeignet. Amazon, EBay, GMX usw. kannst Du alle mit Lynx benutzen. (Bei EBay mache ich das recht oft, weil es per ISDN deutlich besser funktioniert wg. des "document contains no data"-Problems, sprich weil deren Server bloed eingestellt sind.)

Und nur weil viele Leute sich nicht um Minderheiten scheren, muss man nicht selbst unnoetig Leute ausschliessen, weil man den bequemsten Weg gehen moechte. Soviel Aufwand ist es auch nicht, die paar Regeln fuer barrierefreies Web zu beachten.
Wile
 
dms schrieb:
Zu dem JavaScript-Dingens: Ich bezweifle dass Spam-Bots so weit entwickelt sind dass sie JavaScript ausführen können. Würde in dem Fall also auch funktionieren.
Ich stelle es mir eigentlich als kein grosses Problem vor, Du musst quasi Browsercode benutzen und eine Feldeingabe simulieren. Weiss aber nicht, ob sich das lohnt.
Wile
 
Das Problem liegt in der Fomularerkennung dieser Bots.

Wenn im Fomular z.B "Vorname", "Nachname" ect. vorkommt ist es für den Bot schon ein Ziel und die meisten PHP-Fomulare bauen auf die gleichen Felder auf...

Eine Möglichkeit wäre der Einbau einer Checkbox oder ähnlichen und deren fehlendes Abhaken abfangen....der Bot weiss ja nicht daß es notwendig ist.
 
Hmm... das ist mal ne gute Idee!!! Und hört sich machbar an :) Leider kenne ich mich nicht mal dazu genug aus in PHP <stöhn> kopfkratz
 
Sendet der SPAM immer das Gleiche, oder hat jede Mail einen anderen Inhalt?

Bei ersterem kann man double posting einfach verhindern und hat dann nur noch eine Mail.
Ne andere Möglichkeit wäre eine IP in 10 Minuten höchstens zwei Anfragen schicken zu lassen.

Ich bin aber immer dafür Kontaktformulare so frei wie nur möglich zu halten. Man vergisst schnell, dass das meiste Kunden sind, die etwas von Dir wollen. Im Media Markt muss ich auch nicht zwingend meine Faxnummer angeben, wenn ich mir ne DVD-Spindel hole.
Auch vergessen oder beachten viele bestimmt den oben besprochenen Spam-Schalter nicht.

Solang sich es in Grenzen hält würde ich es als kleineres Übel mitnehmen.
 
So sieht bei mir z.B. eine der eMails aus:
Code:
firstname: zzzzgielld@macmaniac-design.at
surname: zzzzgielld@macmaniac-design.at
email: zzzzgielld@macmaniac-design.at
subject: 
messengerID: zzzzgielld@macmaniac-design.at
messenger: zzzzgielld@macmaniac-design.at
textarea: zzzzgielld@macmaniac-design.at
Content-Type: multipart/mixed; boundary=\"===============0557765592==\"
MIME-Version: 1.0
Subject: 3c22f664
To: zzzzgielld@macmaniac-design.at
bcc: bergkoch8@aol.com
From: zzzzgielld@macmaniac-design.at

This is a multi-part message in MIME format.

--===============0557765592==
Content-Type: text/plain; charset=\"us-ascii\"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

exvgv
--===============0557765592==--

Submit:
 
Sorry, war länger nicht mehr online und konnte daher auch nicht auf Eure reichlichen Tips eingehen.

Also bei mir ist es das gleiche Problem wie bei "Josh_At". Ich bekomme SPAMs die eindeutig von meinem Formular ausgefülllt wurden und nur Schrott beinhalten. Z.B. bei E-Mail steht dann "ashjkd@henndesign.com", Name: "sjhk", usw. Und von diesem Mist erhalte ich immer exakt fünf Nachrichten zur gleichen Uhrzeit, meistens so gegen 5.18 Uhr. Und alle 5 E-Mails haben unterschiedliche "Texte".

Ich werde jetzt die Mailadresse in meinem Impressum verschlüsseln. Aber mein Bekannter der mir das Formular erstellt hat, meint, dass ich bei dem Kontaktformular eigentlich nichts machen müsste, weil die Adresse durch das PHP für solche Spam-Mailer nicht sichtbar wäre.
 
Da hat er auch recht, aber was nützts, wenn ein Robot einfach Ka**e durch das Formular sendet.
 
Mal ein Vorschlag: Logt die IP mit. Vlt. habt Ihr Glück und die Bots verwenden keine Proxy's, dann könnt Ihr die Bots einfach ausschliessen.

Einen gut programmierten Bot wird man zwar schwer austricksen können (ohne dabei die Usability für normale Nutzer zu mindern), aber man kann's versuchen. Fügt ein Hidden-Feld in das Formular ein. In dieses Feld schreibt Ihr bei der Formularausgabe einen String. Anhand dieses Strings wird dann beim Absenden des Formulars geprüft ob die Eingabe gültig ist. Gültig sollte in diesem Fall heissen ob das Formular in den letzten X Stunden/Minuten aufgerufen wurde. Im String könnte z.B. ein Timestamp stehen oder ein Schlüssel der nur eine bestimmte Zeit lang gültig ist.

Das funktioniert nat. nicht mit Bots die so schlau sind und das Formular auch wirklich vorher auslesen. Hier kann man einen anderen Trick anwenden. Man misst die Zeit zwischen dem Aufruf und dem Absenden des Formulars. Ist die Zeit unter X Sekunden->keine Mail.
 
Ja das hört sich ja gut an, nur habe ich nicht den blassesten Schimmer, wie man sowas realisiert! kopfkratz
 
schuschain schrieb:
Ich werde jetzt die Mailadresse in meinem Impressum verschlüsseln.
Mail-Adressen im Quellcode verschlüssele ich immer so. Vielleicht interessierts Dich ja:

Code:
<!--antispam-->
<script type="text/javascript">
<!--
   function genmail(no1,no2,no3) {
      document.write('<a href="mailto:'+no1+'@'+no2+'.'+no3+'">'+no1+'@'+no2+'.'+no3+'</a>');
   }
   genmail('[COLOR=Red]xyz[/color]','[COLOR=green]abc[/color]','[COLOR=yellow]de[/color]');
//-->
</script>
<noscript>
   <div style="display:inline;">[COLOR=Red]x[/color]<span style="display:none;">unsichtbar</span>[COLOR=Red]yz[/color]@[COLOR=green]a[/color]<span style="display:none;">unsichtbar</span>[COLOR=green]bc[/color].<span style="display:none;">unsichtbar</span>[COLOR=yellow]de[/color]</div>
</noscript>
<!--/antispam-->

Bei deaktiviertem JS ist die Mail-Adresse nicht anklickbar. Aber das ist mir ehrlich gesagt ziemlich egal. Besser als Spam.
 
dms schrieb:
Mail-Adressen im Quellcode verschlüssele ich immer so. Vielleicht interessierts Dich ja:

[...]

Bei deaktiviertem JS ist die Mail-Adresse nicht anklickbar. Aber das ist mir ehrlich gesagt ziemlich egal. Besser als Spam.
wenn du das ganze jetzt noch in eine externe .js datei packst ist das risiko noch kleiner, dass das javascript im quelltext ausgelesen wird...
 
Ist bei mir natürlich in einer Extra-Datei. Wollte den Kram nur zusmmenhängend posten. Aber ich denke wenn ein Bot JavaScript interpretieren kann, dann wird er auch externe Dateien einbinden.
 
dms schrieb:
Ist bei mir natürlich in einer Extra-Datei. Wollte den Kram nur zusmmenhängend posten. Aber ich denke wenn ein Bot JavaScript interpretieren kann, dann wird er auch externe Dateien einbinden.
aus diesem grund habe ich in meiner Javascript datei die ganzen "stücke" noch in Unicode codiert... wer das knackt ist endweder human, oder verdammt intelligent (damit mein ich dann einen Bot) :cool:
 
Josh_AT schrieb:
Ja das hört sich ja gut an, nur habe ich nicht den blassesten Schimmer, wie man sowas realisiert! kopfkratz

Wenn Du damit die Art meinst, wie viele Sekunden ein User mindestens für sein Formular zu brauchen hat:

Einfach ein hidden-Feld ins Kontaktformular dessen value der aktuelle timestamp ist. Die Auswertungsdatei vergleicht diesen übergebenen Wert dann mit dem jetzt aktuellen timestamp und schon geht's.
 
Ääääh...wie sähe denn der Code für sowas aus?
 
Ein Timestamp gibt die Sekunden seit 1970 an. Ist also einfach eine große Zahl.

Also das hidden-Feld im Kontaktformular könnte so aussehen:
PHP:
<input type="hidden" name="Formular_angefragt" value="<? echo time(); ?>">
Im Codebereich der das Formular auswertet machst Du dann noch eine Variable
PHP:
$Formular_abgeschickt=time();

Der timestamp in dem Formular ist kleiner als der in der auswertenden Datei. Vergleichst Du die beiden
PHP:
$Differenz=$Formular_abgeschickt - $Formular_angefragt;
erhälst Du die Differenz der beiden Zeiten in Sekunden und kannst das dann z.B. in eine if-Struktur einbauen.
PHP:
if($Differenz<20){
// Meldung ausgeben
}

Das Forum hier macht übrigens etwas ähnliches. Versuche mal innerhalb einer Minute mehrere Beiträge zu schreiben.
 
Hmm, muß ich mal im Dreamweaver austesten. Nur... wie baue ich das funktionierend in Rapidweaver ein! Da wird dann das Problem sein, daß rapidweaver keine Code-Manipulation direkt in dem Formularfile vorsieht. Sonst kann man aber überall code einfügen...
 
Versuch einfach über den Rapidweaver ein hidden-Feld hinzuzufügen und den value setzt Du auf „<? echo time(); ?>“.

Die Kontaktdatei muss natürlich ne PHP-Datei sein.
 
Josh_AT schrieb:
Hmm, muß ich mal im Dreamweaver austesten. Nur... wie baue ich das funktionierend in Rapidweaver ein! Da wird dann das Problem sein, daß rapidweaver keine Code-Manipulation direkt in dem Formularfile vorsieht. Sonst kann man aber überall code einfügen...
wenn du die RW datei als HTML file abgelegt hast öffnest du sie in einem Texteditor (TextWrangler) und setzt die sachen ein die du noch brauchst!
 
Zurück
Oben Unten