Skrypt chroniący strony przed złośliwymi botami i spambotami

Uruchamiając swoją stronę www, zwłaszcza stosując gotowe skrypty, jesteśmy narażeni na ataki złośliwych botów szukających luk w oprogramowaniu lub spamujących, które pomimo tego, że najczęściej są nieskuteczne potrafią przeciążyć zasoby naszego konta na serwerze lub zużyć sporą część wykupionego transferu Na forum webhostingtalk.pl exa opracował skrypt, który rozwiązuje ten problem :)
spambot-attack

Jak to działa

W dużym uproszczeniu skrypt monitoruje częstotliwość odwoływania się do strony poprzez IP odwiedzającego. Jeżeli w czasie mniejszym niż 30 sekund (domyślnie, wartość tę możemy swobodnie zmieniać) ilość wywołań naszej strony nienaturalnie przekroczy zadany próg wywołań na sekundę mamy do czynienia z botem i dostęp do strony zostaje zablokowany na określony czas. Boty google, yahoo i msn nie są blokowane.

Jak zainstalować

  1. Pobieramy [download#11] paczkę ze skryptem i drzewem katalogów na logi.
  2. Rozpakowujemy w głównym katalogu naszej strony, katalogowi bdsave i podkatalogom nadajemy uprawnienia do zapisywania.
  3. W pierwszej linii naszego skrypty dodajemy: <?php require('./exaBD.php'); ?> .
spambots

Instalacja dla WordPress-a

Kod require(ABSPATH . 'exaBD.php'); wklejamy zaraz za (20 linia) define( 'ABSPATH', dirname(__FILE__) . '/' ); w pliku fc-load.php.

Instalacja dla pozostałych skryptów oraz inne informacje o skrypcie znajdziecie na stronie autora.

FAQ

  • Q: Skrypt ma szczególne wymagania?
  • A: Nie. Skrypt działa na każdym serwerze z PHP 4 lub 5. Do tego dodatkowy narzut z faktu używania skryptu jest praktycznie zerowy, skrypt w trakcie działania wykonuje 2 odczyty i 1 zapis na 23 bajtowych plikach.
  • Q: W jaki sposób są wykrywane boty Google, Yahoo, MSN?
  • A: Szybko. Pierwszy człon adresu IP musi być z sieci z przedziału <63, 75>. Drugim warunkiem oceny jest User Agent. Boty wyszukiwarek na 100% nie zostaną pomylone z użytkownikiem.
  • Q: IP google są jeszcze z innej klasy adresowe, nie zapomniałeś ich uzwględnić?
  • A: Nie. To, że inne adres IP należy do google lub yahoo nie oznacza od razu, że są to IP botów wyszukiwarek. Należy zawsze sprawdzić reverse-DNS dla testowanego IP. Jeżeli jest to bot będzie to zaznaczone w zwróconej nazwie hostname.
  • Q: Dlaczego dla botów też przydzielasz limit żądań/30 sekund?
  • A: Istnieje nikłe prawdopodobieństwo, że złośliwy bot będzie z jest samej sieci i będzie się podszywał. Boty wyszukiwarek nie zajeżdżają stron i nie przekroczą 150 wywołań w ciągu 30 sekund.
  • Q: Jaki limit wywołań ustawić dla użytkowników?
  • A: Jeżeli jest to mało odwiedzana strona 15. Dla forów internetowych, gdzie użytkownicy otwierają wiele tematów jednocześnie w zakładkach 30 wywołań powinno wystarczyć. Na dużych stronach można zmniejszyć też czas blokady.
  • Q: Czy skrypt czyści automatycznie katalog z logami?
  • A: Tak, skrypt czyści ten katalog automatycznie raz na 24 godziny.
this-is-sparta-caution-cone

Polecam wszystkim webmasterom :)