Skrypt chroniący zasoby serwera przed złośliwymi botami
#1
Napisano 28 wrzesień 2008 - 21:41
postanowiłem opublikować skrypt, który napisałem jakiś czas temu w sytuacji, kiedy złośliwe boty zaczęły atakować jedną ze stron będących pod moją opieką. Strony w sieci (pomimo, że tego niekiedy nie widać) nękają śmieciowe boty szukające luk z skryptach czy też będące amatorskimi zbieraczami treści, które często zarzynają nasze konta (przeglądnijcie access logi serwera). Skrypt ten w momencie wykrycia, że strony nie przegląda człowiek a bot (przy tym za szybko przechodzi po naszej stronie) czasowo blokuje mu dostęp chroniąc tym samym zasoby naszego konta. Boty Google, Yahoo i MSN nie są ograniczane.
Skrypt na licencji GPL + opis dostępny jest na stronie: http://docs.google.c...d4pj4_0hfj5j4gx.
#2
Napisano 28 wrzesień 2008 - 21:59
#3
Napisano 28 wrzesień 2008 - 22:05
#4
Napisano 28 wrzesień 2008 - 22:15
Użytkownik vegetagt dnia 28.09.2008, 22:59 napisał
Ten skrypt można skonfigurować tak, żeby nie przyblokował żadnego człowieka. Sam nieraz wchodzę na forum i potrafię otworzyć 15 zakładek. W domyślnej konfiguracji możesz otwierać 25 stron/30 sekund, co wg. mnie jest wystarczającą wartością. Normalny człowiek nie odpali więcej stron
Użytkownik JarekMk dnia 28.09.2008, 23:05 napisał
Zerknij do access-loga i zorientuj się ile z twojego ruchu to śmieciowe boty. Ja mam ten skrypt (pierwotną wersję) odpalony od ponad roku pod jednym autorskim CMSem i nie sprawdzałem ile zaoszczędziłem. Musiałem zablokować boty "dosujące" stronę i się udało. Poza tym to jest nowa wersja, poprawiona wczoraj, wcześniej nie było opcji uwalania botów od include buga. Nie mam też wordpresów i seo-zapleczy, na których mógłbym to potestować w ekstremalnych warunkach.
Najpierw napisałem o tym skrypcie na forum.optymalizacja.com, bo wydawało mi się, że ich to powinno bardzo zainteresować, ale chyba boją się przetestować skrypt, bo zero odzewu.
#5
Napisano 29 wrzesień 2008 - 09:12
Gotowy PHP na Sblam.com jest kiepski i trzeba go przerabiać. Za to sama czarna lista w pliku jest bardzo dobra i skuteczna.
#6
Napisano 29 wrzesień 2008 - 09:48
Mój skrypt to antyflood. Co do wydajności to mając dostęp do apache możliwe, że lepiej jest zainstalować mod_evasive (mój skrypt to coś analogicznego do parametry DOSSiteCount: dla PHP), ALE są dwie istotne różnice.
1. Dla mod_easive nie możemy obniżyć parametru DOSSiteCount do 20 czy nawet 10 na blogach, bo moduł poblokuje nam najprawdopodobniej też boty wyszykiwarek (google, yahoo, msn).
2. mod_easive chroni ogólnie przed dosem, zapamiętuje dodatkowo inne, całkowicie zbędne przy normalnym działaniu strony informacje (jak DOSHashTableSize) i powinno się go raczej uruchamiać tylko w sytuacji ataku, a ja skupiłem się wyłącznie na floodzie z IP, który jest problemem codziennym.
Chyba muszę dwie rzeczy dopisać do FAQ odnośnie wydajności. Po pierwsze mój skrypt w działaniu to dodatkowo 2 odczyty, 1 zapis na plikach mających rozmiar 23 bajty, więc dodatkowy narzut z faktu używania skryptu jest praktycznie żaden. Do tego nie ma szansy, żeby skrypt przyblokował człowieka przeglądającego stronę. Więc testując można tylko zyskać.
#7
Napisano 29 wrzesień 2008 - 10:06
OrgName: Google Inc. OrgID: GOGL Address: 1600 Amphitheatre Parkway City: Mountain View StateProv: CA PostalCode: 94043 Country: US NetRange: 216.239.32.0 - 216.239.63.255 CIDR: 216.239.32.0/19
Co się stanie jeżeli stronę odwiedzi bot a później sprawdzający z adresu który nie uwzględniłeś?
#8
Napisano 29 wrzesień 2008 - 11:02
Listę IP wyszukiwarek można znaleźć tutaj: http://iplists.com/. Zarówno google jak i inne wyszukiwarki mają na tych listach zapisane różne adresy należące do korporacji, ale nie znaczy to, że są to adresy botów indeksujących. Jeżeli znajdziesz w którymś z adresów spoza puli bota indeksującego, to poprawię skrypt.
Takiej konfiguracji używam od roku czasu na jednej ze stron ze sporym site. googlebot potrafi zaindeksować 3500 stron/dobę. Nigdy nie zaindeksował strony z komunikatem o blokadzie (bo monitorowałem to przez jakiś czas, tak samo yahoo).
Na stronie dodałem opis instalacji dla popularnych skryptów.
#9
Napisano 14 marzec 2009 - 17:08
Zamiast tokena (confirm_register.htm) mam komunikat:
Cytat
#11
Napisano 14 marzec 2009 - 17:19
Ogólnie widzę że jakieś pliki tworzą się w tych katalogach czyli tak wszystko działa jednakże blokuje token :/
http://znajomi.biz/i...rm_register.htm
#13
Napisano 14 marzec 2009 - 17:27
Cytat
exaBotDefender blad: nadaj uprawnienia zapisu dla./bdsave/1/
A może to być spowodowane tym że mam uruchomione na forum przyjazne linki SF?
EDIT
Jak widzę problem jest z drzewkiem katalogów. Wrzuciłem do katalogu /admin/ folder bdsave i PA śmiga...
#14
Napisano 06 październik 2009 - 13:57
http://docs.google.c...d4pj4_0hfj5j4gx
#15
Napisano 05 sierpień 2010 - 15:15




















