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ć
- Pobieramy [download#11] paczkę ze skryptem i drzewem katalogów na logi.
- Rozpakowujemy w głównym katalogu naszej strony, katalogowi
bdsave
i podkatalogom nadajemy uprawnienia do zapisywania. - W pierwszej linii naszego skrypty dodajemy:
.<?php require('./exaBD.php'); ?>
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.
Polecam wszystkim webmasterom :)