Blokowanie botów spamerskich
Zmorą wielu osób zajmujących się prowadzeniem strony www z systemem komentarzy oraz forami są boty, bestie te rejestrują się w naszych stronkach a następnie wklejają setki reklam viagry czy to stron pornograficznych.
Oczywiście można w formularzu rejestracyjnym wprowadzić obrazki do wpisywania kodu, jednakże coraz częściej boty posiadają obsługą OCR i znowu zaczyna się problem.
Ja ostatnio na jednej ze swoich stron wprowadziłem banalne rozwiązanie, które jak na razie okazuje się skuteczne.
Mianowicie w pliku który odpowiada za rejestrację użytkownika i/lub w plikach wysyłających komentarze umieszczam prościutki skrypt.
Pierwszy z nich, sprawdza czy klient do rejestracji dostał się przechodząc przez naszą stronę, czy po prostu połączył się gotowym linkiem pobranym np. z google.
Chyba normalny user nie rejestruje się na żadnej stronie, bezpośrednio z linka na gogle, tylko po uprzednim przejrzeniu zawartości strony.
Zawartość skryptu ref_test.php:
<?
$mystring = $_SERVER['HTTP_REFERER'];
$findme = ‘antynet.pl’;
$pos = strpos($mystring, $findme);
if ($pos === false) {
echo “Proszę wchodzić klikając na linka \”Rejestracja\” “;
exit;
} else {
echo “”;
}
?>
Kolejny skrypt sprawdza czy użytkownik starający się zarejestrować na naszej stronie posiada przeglądarkę zlokalizowana w języku polskim. Nie wiem po co ktoś z przeglądarką w języku chinskim miałby się u mnie rejestrowaæ. Zresztą to samo się tyczy DE czy US.
Zawartość pliku ua_test.php:
<?
$mystring = $_SERVER['HTTP_USER_AGENT'];
$findme = ‘pl’;
$pos = strpos($mystring, $findme);
if ($pos === false) {
echo “ACCESS DENIED”;
// require_once “side_right.php”;
// require_once “footer.php”;
exit;
} else {
echo “”;
}
?>
Teraz wystarczy w pliku odpowiedzialnym za rejestracje wpisać:
Include “ref_test.php”;
Include “ua_test.php”;
Rozwiązanie nie jest genialne ani bardzo innowacyjne, jednakże jak pokazują logi działa i to się w tym przypadku liczy.
Ostatnie komentarze