Data: 16.3.2009 o 11:01 Kategoria: Software
Skrypt chroniący strony przed złośliwymi botami i spambotami

Uru­cha­mia­jąc swoją stronę www, zwłasz­cza stosując gotowe skrypty, jesteśmy narażeni na ataki zło­śli­wych botów szu­ka­ją­cych luk w opro­gra­mo­wa­niu lub spa­mu­ją­cych, które pomimo tego, że naj­czę­ściej są nie­sku­teczne potrafią prze­cią­żyć zasoby naszego konta na serwerze lub zużyć sporą część wy­ku­pio­nego trans­feru Na forum webhostingtalk.pl exa opra­co­wał skrypt, który roz­wią­zuje ten problem :)

Jak to działa

W dużym uprosz­cze­niu skrypt mo­ni­to­ruje czę­sto­tli­wość od­wo­ły­wa­nia się do strony poprzez IP od­wie­dza­ją­cego. Jeżeli w czasie mniej­szym niż 30 sekund (do­myśl­nie, wartość tę możemy swo­bod­nie zmieniać) ilość wywołań naszej strony nie­na­tu­ral­nie prze­kro­czy zadany próg wywołań na sekundę mamy do czy­nie­nia z botem i dostęp do strony zostaje za­blo­ko­wany na okre­ślony czas. Boty google, yahoo i msn nie są blokowane.

Jak za­in­sta­lo­wać

  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'); ?> .

In­sta­la­cja dla WordPress-a
spambots
Kod require(ABSPATH . 'exaBD.php'); wklejamy zaraz za (20 linia) define( 'ABSPATH', dirname(__FILE__) . '/' ); w pliku wp-load.php.

In­sta­la­cja dla po­zo­sta­łych skryptów oraz inne in­for­ma­cje o skrypcie znaj­dzie­cie 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 wszyst­kim webmasterom :)

Tagi: boty, Drupal, joomla, phpbb2, phpbb3, robots, Scuttle, skrypty, spam, wordpress
  • http://kamilpietrzak.eu Kamil

    Dobre roz­wią­za­nie, jednak według mnie lepszym roz­wią­za­niem jest blo­ko­wa­nie z poziomu .htaccess ko­rzy­sta­jąc z gotowych baz botów np. sblam.com

  • http://kamilpietrzak.eu Kamil

    Dobre roz­wią­za­nie, jednak według mnie lepszym roz­wią­za­niem jest blo­ko­wa­nie z poziomu .htaccess ko­rzy­sta­jąc z gotowych baz botów np. sblam.com

  • http://justablog.pl Igor Chudy / vellkan

    No właśnie tego po­trze­bo­wa­łem.
    Tylko pytanie — czy można to bez­pro­ble­mowo za­im­ple­men­to­wać na każdej stronie? Nie tylko na blogu?
    Bo o ile z blogiem nie mam problemu, o tyle na moim port­fo­lio już dwa razy blo­ko­wano mi konta mail’owe.

  • http://justablog.pl Igor Chudy / vellkan

    No właśnie tego po­trze­bo­wa­łem.
    Tylko pytanie — czy można to bez­pro­ble­mowo za­im­ple­men­to­wać na każdej stronie? Nie tylko na blogu?
    Bo o ile z blogiem nie mam problemu, o tyle na moim port­fo­lio już dwa razy blo­ko­wano mi konta mail’owe.

  • Pingback: Krótkie podsumowanie: marzec 2009