Webstatt.org - Community seit 2006 - 2012 (2024?)

Rechenaufgabe als SPAM Schutz

Avatar user-253
06.07.2006 19:28

Gerade bei Dr. Web (http://www.drweb.de/weblog/weblog/?p=599) gelesen. Eine meine Meinung nach interessante und gleichermaßen simple Möglichkeit: Man stellt als Spamschutz eine Rechenaufgabe.
Natürlich besteht wie immer die Gefahr, dass auch diese Aufgaben geparst würden. Theoretisch könnte man die Aufgaben ja auch als Bilder einlesen.

Was meint ihr? Eine sinnvolle Idee?

user-157
06.07.2006 19:37

njoa also das wird man ja dann bei drweb sehen (da wirds schon angewendet).
die idee finde ich gut, aber ich weiß net, ob alle so eine aufgabe gelöst kriegen .oO

asdf!
Avatar user-180
06.07.2006 19:39

hm weiss nicht.. mit gefällt das von barrabas klicken auf jeden fall besser.
eine alternative wäre, dass man nur auf die richtige lösung klicken muss. mir sind zu viele eingaben immer zuwieder. lieber spamschutz "für die maus"

may the force be with you. but mostly with me.
Avatar user-168
06.07.2006 19:40

Also für einzelne Einsätze ist die Methode sicherlich ausreichen. Allerdings muss man so ein System entwerfen und nur selber benutzen, denn wenn ein Script das übernimmt und dieses Script zum Download angeboten wird, dann bringt das nichts mehr.
Je häufiger die Ausgabe in der Form vorkommt, desto mehr lohnt sich eine Lösungstechnik für Spammer.
Dennoch finde ich die Methode besser als diese unleserlichen Pixelhaufen. Ich würde mir allerdings ein System schreiben, welches aus einer Datenbank ein paar Rechenaufgaben entnimmt, eine aussucht und dann dazu Antwortmöglichkeiten angibt. Eine stimmt dann eben. Fettes Grinsen
Das hat den Vorteil, dass der User die Tastatur nicht benötigt, sondern per Maus einen Radiobutton aussuchen kann und dazu nur einen Mausklick braucht!

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-349
06.07.2006 19:45

Auf jeden Fall eine bessere Alternative als manchmal schier unentzifferbare Captchas .. und barrierefreier wärs auch gleich.

Avatar user-253
06.07.2006 19:46

Original von user-180
hm weiss nicht.. mit gefällt das von barrabas klicken auf jeden fall besser.
eine alternative wäre, dass man nur auf die richtige lösung klicken muss. mir sind zu viele eingaben immer zuwieder. lieber spamschutz "für die maus"


Barrierefreiheit... zwinkern

Original von user-168
Allerdings muss man so ein System entwerfen und nur selber benutzen, denn wenn ein Script das übernimmt und dieses Script zum Download angeboten wird, dann bringt das nichts mehr.


Man generiert eine handvoll Bilder, speichert diese mit Ergebnis in der Datenbank und es wird für SPAM Bot schwer. Natürlich kann man auch das parsen, aber naja...
Allerdings sind dann wieder alle ohne Bilder ausgeschlossen

user-220
06.07.2006 20:28

Wieso je öfter eine Aufgabe vorkommt?
Dann speicher doch einfach die Aufgabe die bereits kam in einer Seperaten Datenbank Tabelle. So kannst du Praktisch umgehen, das eine Aufgabe Doppelt vorkommt Fettes Grinsen Mach das ganze noch mit Random, dann siehts hübscher aus zwinkern

Avatar user-180
06.07.2006 20:46

Original von user-251el
Allerdings sind dann wieder alle ohne Bilder ausgeschlossen

die mit ohne bilder sind doch sowieso fast nur bots. die wir ja nicht wirklich haben wollen. oder?

may the force be with you. but mostly with me.
Avatar user-253
06.07.2006 20:49

Textbrowser, WAP Geschichten, ...
Man könnte als Ersatz noch die Aufgabe in den ALT Tag schreiben - was Bots aber wieder parsen könnten.

Avatar user-168
06.07.2006 23:07

Ich bin ja der Meinung, am besten ne Auswahl an drei bis fünf Antworten auf zufällig gewählte Fragen ohne Mathematik.
Beispielsweise: Wo steht der Eifelturm?


Das ist schwer für einen Bot, aber leicht für einen Menschen.

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-253
07.07.2006 06:56

Theoretisch sicherlich eine sinnvolle Ergänzung, man müsste aber darauf achten, die Fragen eindeutig zu stellen (bei deiner Frage wäre theoretisch ja sowohl Frankreich, Paris usw). Weiterhin wären Rechtschreibefehler oder auch die sprachliche Portabilität eventuell ein Problem.

Wie wäre es, wenn wir hier nach einem tollen super SPAM Schutz suchen, der vorzugsweise auch ohne Bilder, JS, Maus,... funktioniert

Avatar user-168
07.07.2006 08:33

Ich werd ggf. nach meiner Idee eine Class erstellen und diese dann hier ins Forum stellen. Vllt. finden sich dann ja einige kreative Ideen und man kann das Ding weiterentwickeln. Fettes Grinsen

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-253
07.07.2006 08:57

Sehr guter Anfang *freu*

Avatar user-182
07.07.2006 09:15

Also BRBs lösung mit dem Draufklicken finde ich schonmal sehr gut.
man könnte vll auch einfach so einen satz machen wie...
wieviele buchstaben erhält das wort "haus"?
oder irgendwie auf ein bild dynamisch kreise oder sowas zeichnen und dann den user zählen lassen...
// oder noch stumpfer..."wieviel ecken hat ein haus mit 6 ecken?"

man gucke sich auch mal die kommentare an, z.B.:
Diese Idee hatte ich schon einmal vor reichlich einem Jahr gehabt. Der Grund, warum ich es noch nicht umgesetzt habe: bei mir fehlt der Spam zwinkern. (Von daher ist ein selbstentwickeltes Skript schon einmal der beste Schutz)

Ansonsten sehe ich das Problem von user-148tian nicht. Warum muß ich die Rechenaufgaben immer nach einen festen Schema gestalten? Ich schrieb damals als Beispiel:

* Wieviel ist 3 und 4?
* Wieviel ist drei plus vier?
* Du nimmst 3, addierst vier

Und ich würde das Plugin folglich nicht "Math Comment ..." nennen, sondern es bei verbalen Fragen belassen (die durchaus Mathematik enthalten können).
[..]

Seid ihr auch schon wix'r? xD
Avatar user-271
07.07.2006 10:42

naja...aber da ist ja das gleiche problem das man mit Captchas auch hat....das ist sogar einfacher zu knacken, weil du keine Buchstaben drinhast, sondern ziffern und */-+...
und wenn du Textaufgaben hast, hast du wieder das Sprachen problem ??? ;D

ich denke...diese Rechnung ist einfacher zu knacken, als normale Captchas...

#!/bin/bash
traurig){ neutral:& };:
Avatar user-168
07.07.2006 10:44


<?php

class antispam{
var $frage;
# Speichert die Frage
var $antwort;
# Speichert die ID der richtigen Antwort.
var $antwortmenge;
# Speichert die Menge an Antworten in der Datenbank.

function __construct(){
$this->datenbank(false, "DELETE FROM antispam_eintraege WHERE Zeitpunkt<".time());
# Alte Usereintraege loeschen (Frage und richtige Antwort fuer die User)

mysql_connect('server', 'user', 'passwort'zwinkern;
mysql_select_db('datenbank'zwinkern;
# Zur Datenbank verbinden

$abfrage = $this->datenbank(true, "SELECT COUNT(*) AS Wert FROM antispam_antworten"zwinkern;
if ($abfrage[0]['Wert'] > 2)
$this->antwortmenge = $abfrage[0]['Wert'];
else
die('<b>Nicht genug Fragen!</b>'zwinkern;
# Menge an Antworten abfragen, ueberpruefen und speichern

$abfrage = $this->datenbank(true, "SELECT COUNT(*) AS Wert FROM antispam_fragen"zwinkern;
srand(time());
$i = rand(1, $abfrage[0]['Wert']);
# Menge an Fragen in der Datenbank ermitteln und eine Zufaellig aussuchen

$abfrage = $this->datenbank(true, "SELECT Frage, Antwort FROM antispam_fragen WHERE ID=".$i);
$this->frage = $abfrage[0]['Frage'];
$this->antwort = $abfrage[0]['Antwort'];
# Gezielte Frage aus der Datenbank abrufen und mit der richtigen Antwort speichern
}

function datenbank($ausgabe = true, $query = ''zwinkern{
# Zur Abfrage und Eingabe von Daten der Datenbank
$abfrage = mysql_query($query);
if ($ausgabe == true){
# Wenn $ausgabe == true ist, wird ein Array zurueckgeben, dass die Datensätze wie folgt beinhaltet:
# $daten[] beinhaltet die diversen abgefragten Zeilen der Datenbank
# Das Unterarray $daten[][] beinhaltet die Daten der Felder, wobei das Feld ID der ersten abgerufenen Zeile so ausgegeben werden kann: echo $daten[0]['ID'];
# Beginnt mit 0, statt mit 1!!!
#
# Ansonsten wird nur ein true zurückgegeben.
for($i=0;$i<mysql_num_rows($abfrage); $i++)
$daten[$i]=mysql_fetch_array($abfrage);
return $daten;
} else
return true;
}

function frage_stellen(){
$antworten[0] = $this->antwort;
$i = 1;
while ($i < 3) {
$antworten[$i]=rand(1, $this->antwortmenge);
if (($i == 1) AND ($antworten[1] <> $antworten[0]))
$i = 2;
elseif (($i == 2) AND ($antworten[2] <> $antworten[0]) AND ($antworten[2] <> $antworten[1]))
$i = 3;
}
# Das Script ermittelt drei Antworten (die IDs davon)
# Es darf in der Datenbank keine ID von der ersten bis zur letzten fehlen, da das Script davon ausgeht, wenn 9 Zeilen in der Datenbank gefunden werden, dann sind das die IDs 1 bis 9.

$abfrage = $this->datenbank(true, "SELECT ID, Antwort FROM antispam_antworten WHERE ((ID=".$antworten[0]."zwinkern OR (ID=".$antworten[1]."zwinkern OR (ID=".$antworten[2]."zwinkern)"zwinkern;
# Fragt die Antworten aus der DB ab

echo '<form action="antispam.php" method="POST"><b>'.$this->frage.'</b><br>';
$id = time()-rand(0,time());
# Legt eine ID zur Identifikation des Users an (fuer Formular und Datenbank)
echo '<input type="hidden" value="'.$id.'" name="id">';
foreach($abfrage as $t)
echo '<input type="radio" value="'.$t['ID'].'" name="antwort">'.$t['Antwort'].'<br>';
echo '<input type="submit" value="Antworten" name="senden"></form>';
# Ausgabe des Formulars

$this->datenbank(false, "INSERT INTO antispam_eintraege (ID, Zeitpunkt, Antwort) VALUES (".$id.", ".(time()+300).",".$this->antwort."zwinkern"zwinkern;
# Speichert die Eintraege fuer das Antispamscript (Userwiedererkennung und Aufloesungsdaten fuer die Fragen)
}

function ueberpruefung($id, $antwort){
# $id und $antwort sind Variablen, die die Werte aus dem Formular speichern
$abfrage = $this->datenbank(true, "SELECT * FROM antispam_eintraege WHERE ID=".$id);
# Fragt die Userdaten ab (richtige Antwort auf die Frage)

if ($abfrage[0]['Antwort'] == $antwort){
echo 'In Ordnung!';
$this->datenbank(false, "DELETE FROM antispam_eintraege WHERE ID=".$id);
# Richtige Antwort; Eintrag fuer User kann sofort aus der Datenbank entfernt werden
} else
echo 'Gesperrt!';
# False Antwort.
}

}
$antispam = new antispam();
# Start des Scripts

if (isset($_POST['id']))
$antispam->ueberpruefung($_POST['id'], $_POST['antwort']);
else
$antispam->frage_stellen();
# Ist ein Formular uebergeben worden? Entsprechend wird aufgeloest oder eine Frage gestellt.

?>
<br><a href="antispam.php">neu laden</a>


Entsprechende Tabellen in der Datenbank:
antispam_fragen:
ID: Int(4)
Frage: Varchar (256)
Antwort: Int(3)

antispam_antworten:
ID: Int(3)
Antwort: Varchar(256)

antispam_eintraege:
ID: Int(12)
Zeitpunkt: Int(12)
Antwort: Int(4)

Habs getestet und es klappt.

Dustwolf ------------------------- Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein. F. Nietzsche
Avatar user-253
07.07.2006 10:54

Original von user-271
ich denke...diese Rechnung ist einfacher zu knacken, als normale Captchas...


Das ist keine Frage. Allerdings klappt Captchas ohne Maus nicht wirklich und sind manchmal arg unleserlich.
Es geht ja auch darum, den Spamschutz mit geringsmöglichen (auch kognitiven) für normale User zu verbinden.

Analysieren Spam Bots wirklich Bilder? Das klingt wie mit großen Kanonen auf Spatzen geschossen

Avatar user-180
07.07.2006 11:06

hm original aus einer sprot-grudkurs-ex meines bruders:
welche form ähnelt der eines balles am meissten? + # - O

may the force be with you. but mostly with me.
Avatar user-253
07.07.2006 11:08

Das erinnert mich an meinen Mathe-LK: Welche geometrischen Formen kennt ihr? Ball

Avatar user-182
07.07.2006 11:51

wie wäre es mit geslicten captchers?

Seid ihr auch schon wix'r? xD
Avatar user-180
07.07.2006 12:13

man kann doch mit php bilder zerlegen und dann in html ausgeben lassen...

das kann man ja als "bildersatz" nehmen. oder? also oder einfach ne tabelle mit 1x1px großen tds mit entsprechendem hintergrund.

oder einfach ein ascii auto oder so..

may the force be with you. but mostly with me.
Avatar user-182
07.07.2006 16:51

fish..: http://www.drweb.de/webmaster/sichere-formulare-captcha.shtml

Seid ihr auch schon wix'r? xD
user-137
07.07.2006 17:00

Sind diese Matrix Captchas "noch" sicher, oder sind die Bots schon so das sie es rauskriegen?

Avatar user-182
07.07.2006 17:51

wie wäre es damit?
http://h6p.de/test/csscaptcha.php

Seid ihr auch schon wix'r? xD
user-343
07.07.2006 18:03

Original von user-182
wie wäre es damit?
http://h6p.de/test/csscaptcha.php


MIt Textbrowser bekommst du aber was falsches angezeigt... zwinkern

Avatar user-182
07.07.2006 18:12

mhh....textbrowser frech

Seid ihr auch schon wix'r? xD
Avatar user-253
07.07.2006 18:24

Diese Matrixanzeige von Zahlen finde ich prima. Vielleicht könnte man auf diese Weise auch Gleichungen darstellen, dann hätte man beide Methoden verbunden. Textbrowser haben natürlich wieder einmal gelitten.

Die CSSCaptcha üebrzeugen mich nicht.