|
Neue Downloads
Top 5 Downloads
|
· Gäste Online: 9
· Mitglieder Online: 0
· Registrierte Mitglieder: 2,602
· Neustes Mitglied: Schlumpf2602
|
| ·
coco21 | 02:37:29 |
| ·
Seehund | 02:40:23 |
| ·
Nancy | 05:00:22 |
| ·
Webbi | 05:34:35 |
| ·
Gaboe | 18:19:35 |
| ·
FantasyGirl | 1 Tag |
| ·
Giuseppe | 1 Tag |
| ·
Blackcat | 1 Tag |
| ·
schnecke | 1 Tag |
| ·
Daddy | 1 Tag |
| ·
smojoy | 2 Tage |
| ·
VoiceX | 2 Tage |
| ·
Alberto | 2 Tage |
| ·
Helmi | 2 Tage |
| ·
Schlumpf2602 | 3 Tage |
| ·
deutznaik | 3 Tage |
| ·
douwe yntema | 3 Tage |
| ·
malaccc | 4 Tage |
| ·
R-S-O-L Cheffe Alex | 4 Tage |
| ·
Jante | 4 Tage |
|
|
|
Spambots von der Registrierung abhalten |
|
Guide by Basti.
English Version: not translated/Translator wanted ;)
German Version:
In letzter Zeit haben sich immer mehr Spambots auf verschieden Websites, die mit dem Content Managemant System "PHP-Fusion" betrieben wurden registriert.
Dies ist ärgerlich, besonders, wenn diese automatisierten Bots in den Kommentaren von News und Artikeln spammen.
Um dies zu verhindern gibt es mehrere Möglichkeiten:
Man kann im "System-Admin"-Bereich unter "Registrierungseinstellungen" zum einen "Registrierung mit E-Mail Bestätigung" aktivieren, oder "Neue Mitglieder durch Administrator aktivieren".
Beide Varianten sind sehr sicher, um Spambots von der Website abzuwehren, allerdings möchte nicht jeder Administrator diese Einstellungen aktivieren.
Aber da gibt es noch folgende Möglichkeit:
Man kann einen Sicherheitscode bei der Registrierung anzeigen lassen, den der User dann abtippen muss. Allerdings sollte man da den Sicherheitscode nicht als Text, sondern als Bild anzeigen lassen, da schon fast jeder Bot dies umgehen kann.
Einstellung: Im System-Admin"-Bereich unter "Registrierungseinstellungen, bei "Sicherheitscode anzeigen?" "Ja" auswählen und bei "Sicherheitscode anzeigen als" "Bild" auswählen.
Dies sollte in der Theorie wunderbar funktionieren, doch wie man ahnen kann tut es das nicht ganz:
Denn seit Februar/März 2007 gibt es Spambots, die es auf Websites, auf denen PHP-Fusion
installiert ist, abgesehen haben. Diese können nämlich den Validation-Code des Bildes auslesen.
Doch man kann dagegen etwas machen: Man kann den Validation-Code des Bildes einfach komplizierter und umfangreicher darstellen. Für das menschliche Auge sollte dieser neue Sicherheitscode leicht erkennbar sein, doch die Bots sind für den neuen Code nicht programmiert.
Dafür muss man folgendes an PHP-Fusion modifizieren:
Öffne die maincore.php und suche folgenden Code:
// Create Validation image if $vimage is set and die();
if (isset($vimage)) {
$check_url = (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['SCRIPT_NAME']);
if (eregi("register.php", $check_url) && preg_match("/^[0-9a-z]{32}$/", $vimage)) {
$vres = dbquery("SELECT * FROM ".$db_prefix."vcode WHERE vcode_2='$vimage'");
if (dbrows($vres)) {
$vdata = dbarray($vres);
$imf = rand(3,5); $imx = rand(15,40); $imy = rand(2,7);
$im = ImageCreateFromJPEG("images/validate_bg.jpg");
$tcolor = ImageColorAllocate($im, 40, 40, 40);
Header("Content-type: image/jpeg");
ImageString ($im, $imf, $imx, $imy, $vdata['vcode_1'], $tcolor);
ImageJPEG($im, '', 80);
ImageDestroy($im);
}
}
die();
break;
}
und ersetze ihn mit folgendem Code:
// Create Validation image if $vimage is set and die();
// colorful capcha image generator by amra (www.sumotoy.net)
$check_url = (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['SCRIPT_NAME']);
if (isset($vimage)) {
if (eregi("register.php", $check_url) && preg_match("/^[0-9a-z]{32}$/", $vimage)) {
function rgb_grayscale( $rgb ) {
$color['r'] = 0.299 * $rgb['r'] + 0.587 * $rgb['g'] + 0.114 * $rgb['b'];
$color['g'] = 0.299 * $rgb['r'] + 0.587 * $rgb['g'] + 0.114 * $rgb['b'];
$color['b'] = 0.299 * $rgb['r'] + 0.587 * $rgb['g'] + 0.114 * $rgb['b'];
return $color;
}
function rgb_complementary($rgb) {
$color['r'] = 255 - $rgb['r'];
$color['g'] = 255 - $rgb['g'];
$color['b'] = 255 - $rgb['b'];
return $color;
}
function rgb_rand($min=0,$max=255) {
$color['r'] = rand($min,$max);
$color['g'] = rand($min,$max);
$color['b'] = rand($min,$max);
return $color;
}
function rgb_create($r=0,$g=0,$b=0) {
$color['r'] = $r;
$color['g'] = $g;
$color['b'] = $b;
return $color;
}
function rgb_merge($lhs, $rhs ) {
$color['r'] = ($lhs['r'] + $rhs['r']) >> 1;
$color['g'] = ($lhs['g'] + $rhs['g']) >> 1;
$color['b'] = ($lhs['b'] + $rhs['b']) >> 1;
return $color;
}
$vres = dbquery("SELECT * FROM ".$db_prefix."vcode WHERE vcode_2='$vimage'");
if (dbrows($vres)) {
$vdata = dbarray($vres);
//srand((double) microtime() * 1000000);
$im = imagecreate(120,30);
$strt = 0;
$rgb = array();
$rgb['background'] = rgb_rand(0,255);
$rgb['foreground'] = rgb_grayscale(rgb_complementary($rgb['background']));
if ( $rgb['foreground']['r'] > 127) {
$strt = -127;
$rgb['foreground'] = rgb_merge($rgb['foreground'],rgb_create(255,255,255));
$rgb['shadow'] = rgb_merge(rgb_complementary($rgb['foreground']),rgb_create(0,0,0 ));
} else {
$strt = 0;
$rgb['foreground'] = rgb_merge($rgb['foreground'],rgb_create(0,0,0));
$rgb['shadow'] = rgb_merge(rgb_complementary($rgb['foreground']),rgb_create(255,255,255));
}
$color = array();
foreach($rgb as $name => $value) {
$color[$name] = imagecolorallocate($im,$value['r'],$value['g'],$value['b']);
}
imagefilledrectangle($im,0,0,120,30,$color['background']);
for ($i = 0; $i < rand(5,9); $i++ ) {
$x = rand(0,120);
$y = rand(0,30);
$f = rand(0,5);
$c = rgb_grayscale(rgb_rand(127 - $strt,254 - $strt));
$color[$i] = imagecolorallocate($im,$c['r'],$c['g'],$c['b']);
imagestring($im,$f,$x,$y,$vdata['vcode_1'],$color[$i] );
}
$x = (120 - (ImageFontWidth(7) * strlen($vdata['vcode_1']))) >> 1;
$y = (30 - ImageFontHeight(7)) >> 1;
imagestring($im,7,$x + 1,$y + 1,$vdata['vcode_1'],$color['shadow'] );
imagestring($im,7,$x,$y,$vdata['vcode_1'],$color['foreground'] );
header('Content-type: image/png');
imagepng($im);
foreach($color as $name => $value) {
imagecolordeallocate($im,$value);
}
ImageDestroy($im);
}
}
die();
break;
}
|
|
Dieser Beitrag wurde noch nicht kommentiert.
|
|
|
Nur Mitgliedern ist das Kommentieren gestattet.
|
|
|
Aktuelle Bewertung: (Insgesamt: 0 Bewertungen) |
|
| Aktuelle Durchschnittsbewertung: 0 Sterne |
|
|
|
|