Skocz do zawartości

Web Hosting Talk

  • progreso.pl

    Partner technologiczny

    Upraszczamy to, co inni starają się komplikować. Prosto, pewnie, przyjaźnie - tak robimy hosting!
  • Kei.pl

    Partner technologiczny

    Kei.pl działa na polskim rynku internetowym od 2000 roku. Obecnie na blisko 300 serwerach w Centrum Danych Kei.pl znajduje się kilkadziesiąt tysięcy stron WWW.
  • S-NET.info

    Partner technologiczny

    S-NET to dostawca usług dla biznesu. Najważniejsze usługi świadczone przez firmę to usługi Centrum Danych, dostęp do Internetu, transmisja danych oraz tranzyt do różnych operatorów.
  • Sprint Data Center

    Partner technologiczny

    Sprint Data Center to jedyne w Polsce północno-wschodniej i jednocześnie jedno z najnowocześniejszych w kraju centrum przechowywania i przetwarzania danych.

 

Skrypt chroniący zasoby serwera przed złośliwymi botami


14 odpowiedzi na ten temat

Skrypt chroniący zasoby serwera przed złośliwymi botami

#1 exa

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 120 postów

Napisany 28 wrzesień 2008 - 21:41

Witam,

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 vegetagt

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 115 postów

Napisany 28 wrzesień 2008 - 21:59

mhm, ale ten skrypt takze zablokuje strony, które mają opcje otwierania wielu linkow w nowych oknach, prawda? :)

#3 JarekMk

    Weteran WHT

  • WHT Pro
  • PipPipPipPipPipPipPipPip
  • 1013 postów
  • Skąd:Malbork
  • Firma:NetSerwis.info
  • Imię:Jarosław
  • Nazwisko:Szmańda

Napisany 28 wrzesień 2008 - 22:05

Zapowiada się bardzo fajnie :) Jak dużo transferu można zaoszczędzić, procentowo?

#4 exa

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 120 postów

Napisany 28 wrzesień 2008 - 22:15

Zobacz postvegetagt, o 28.09.2008, 22:59, powiedział:

mhm, ale ten skrypt takze zablokuje strony, które mają opcje otwierania wielu linkow w nowych oknach, prawda? :)
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 :). Jeżeli uważasz inaczej, możesz sobie podnieść ten parametr.

Zobacz postJarekMk, o 28.09.2008, 23:05, powiedział:

Zapowiada się bardzo fajnie :) Jak dużo transferu można zaoszczędzić, procentowo?
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 Tomi

    Weteran WHT

  • Użytkownicy
  • PipPipPipPipPipPipPipPip
  • 1124 postów

Napisany 29 wrzesień 2008 - 09:12

Idea słuszna ja używam bazę http://sblam.com i .htaccess bo wydaje mi się ze blokowanie na poziomie Apache jest wydajniejsze niż na poziomie PHP, Jednak rozumiem że idea tego skryptu jest inna i ma zabezpieczyć Flood a nie blokować z czarnej listy. Można przecież połączyć te dwie techniki i będzie sporo wydajniej.

Gotowy PHP na Sblam.com jest kiepski i trzeba go przerabiać. Za to sama czarna lista w pliku jest bardzo dobra i skuteczna.

#6 exa

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 120 postów

Napisany 29 wrzesień 2008 - 09:48

Listę z blokowanym IP w .htaccess w sblam kiedyś przeglądałem, ale spamboty nigdy się akurat do moich formularzy nie dorwały, więc lista ta mi nigdy nie była potrzebna. Sam skrypt widzę, że podpina się pod formularz i sprawdza wysyłane treści przesyłając je na serwer autora. Czyli jest to tylko i wyłącznie antyspam do używania tylko przy formularzach.

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 Noone

    Weteran WHT

  • Użytkownicy
  • PipPipPipPipPipPipPipPip
  • 517 postów

Napisany 29 wrzesień 2008 - 10:06

Nie chce mi się przedzierać przez całość kodu żeby zobaczyć co z tym robisz ale google (z czego oczywiście korzysta bot) ma również inne pule adresów np.:
	

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 exa

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 120 postów

Napisany 29 wrzesień 2008 - 11:02

Noone, z tego co wiem, to crawlery google i yahoo działają na zakresie podanym w moim skrypcie. Z resztą sprawdź revers-DNS dla tego IP - to nie jest googlebot.

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 Mich@ł

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 226 postów
  • Skąd:Lublin
  • Firma:Krynski NET
  • Imię:Michał
  • Nazwisko:Kryński

Napisany 14 marzec 2009 - 17:08

Coś mi na forach phpBB by Przemo nie śmiga ten skrypt.

Zamiast tokena (confirm_register.htm) mam komunikat:

Cytuj

exaBotDefender blad: nadaj uprawnienia zapisu dla./bdsave/1/

Pozdrawiam
Michał Kryński
Krynski NET

#10 kafi

    Weteran WHT

  • WHT Pro
  • PipPipPipPipPipPipPipPip
  • 2533 postów

Napisany 14 marzec 2009 - 17:11

Zobacz postMich@ł, o 14.03.2009, 17:08, powiedział:

mam komunikat

CHMODy i TMPDIR odpowienio ustawione są?

#11 Mich@ł

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 226 postów
  • Skąd:Lublin
  • Firma:Krynski NET
  • Imię:Michał
  • Nazwisko:Kryński

Napisany 14 marzec 2009 - 17:19

CHMODy na 777. TMPDIR standardowe z phpBB by Przemo.



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
Pozdrawiam
Michał Kryński
Krynski NET

#12 kafi

    Weteran WHT

  • WHT Pro
  • PipPipPipPipPipPipPipPip
  • 2533 postów

Napisany 14 marzec 2009 - 17:23

Wyrzuć małpy przed fopen-ami i zobacz, jakie błędy ci wyskoczą.

#13 Mich@ł

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 226 postów
  • Skąd:Lublin
  • Firma:Krynski NET
  • Imię:Michał
  • Nazwisko:Kryński

Napisany 14 marzec 2009 - 17:27

Cytuj

Warning: fopen(./bdsave/1/83.12.****) [function.fopen]: failed to open stream: No such file or directory in /*******/public_html/exaBD.php on line 115
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...
Pozdrawiam
Michał Kryński
Krynski NET

#14 exa

    Stały użytkownik

  • Użytkownicy
  • PipPipPipPipPip
  • 120 postów

Napisany 06 październik 2009 - 13:57

Ponieważ pewna polska firma hostingowa, której nazwy z litości nie wymienię, nie wysłała żadnego powiadomienia, że kończy się mój półroczny okres wynajmu i najzwyczajniej w świece zamknęła mojego VPSa (na którym nic ważnego nie było) link do strony ze skryptem już nie działa, domeny nie będę przedłużał a dostałem już kilka próśb o podesłanie skryptu, więc wykonałem mirror z dokumentacją i linkiem do skryptu:

http://docs.google.c...d4pj4_0hfj5j4gx

#15 FikFik

    Nowy użytkownik

  • Użytkownicy
  • 1 postów

Napisany 05 sierpień 2010 - 15:15

hmmm, a jak interpretować zapisy logów? co oznaczają posczególne numery?





1 Użytkowników czyta ten temat

0 użytkowników, 1 gości, 0 anonimowych użytkowników