Skocz do zawartości

Wytnij bota


whiner

Rekomendowane odpowiedzi

Witam!

Na jednej ze stronek mam dosyc uciazliwego bota ktory pobiera mi informacje ktorej nie chcialbym aby pobieral. Zmienia IP i dosyc czesto nie tylko klase C, stad wycięcie go z httaccesu bedzie conajmniej uciazliwe, macie moze jakis pomysl aby skrypt identyfikowal czy dany bot pobiera tylko dana informacje?

Mam nadzieje ze ktoś mnie zrozumiał bo godzina nie zbyt sprzyja :)

Pozdrawiam

88x31_en.png - semrush z trialem

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli nie znasz IP klienta który wykonuje żądanie HTTP to nie ma technicznej możliwości wykonania jakiś akcji blokujących.

Jeśli klient(boot) akceptuje cookies, bo też tak może być i znasz już IP z którego wchodził możesz po IP wystawić mu ciacho i wykrywać jego obecności, a potem na początku kodu strony if(isset($_COOKIE['wstretnyboot'])) die("PAPA Bocie");

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Jeżeli bot się ładnie przedstawia, to wytnij go w .htaccess:

RewriteCond %{HTTP_USER_AGENT} WrednyBot
RewriteRule .* - [F,L]

Polecam moje pluginy do WordPress'a: WyPiekacz, Meta SEO Pack, User Locker, Google Integration Toolkit i wiele innych :)

Poradnik Webmastera ‰ Ostatnio na blogu:

PoradnikWebmastera-Blog.1.gif

Odnośnik do komentarza
Udostępnij na innych stronach

Ja sprawdzam IP odwiedzających serwis z ostatnich np. 5-10 minut. Jeżeli ilość odsłon jest nienaturalnie duża to blokuje takie IP na określony czas.

W większości przypadków się sprawdza, oszczędza transfer. Oczywiście dedykowanych botów nie sposób powstrzymać. Jak ktoś się uprze to i tak pobierze ze strony to co chce.

Odnośnik do komentarza
Udostępnij na innych stronach

@b2rt0sz teraz przez 72 godziny będziesz wszędzie się dopisywał tworząc OT puknijsie.gif
Też zaczyna mnie to denerwować, zaglądam na nowe posty a tam, odpowiedzi typu: tak, dobre.. no itp :/

Chyba trzeba dać 72 godziny odpoczynku od forum... sorry za OT.

Mar.

Polecam katalog SeoPark.pl, katalog AK47 (5 lata w sieci) ...oraz Wirtualne-miasta.eu
"Dopóki nie skorzystałem z Internetu, nie wiedziałem, że na świecie jest tylu idiotów" - Stanisław Lem

Odnośnik do komentarza
Udostępnij na innych stronach

Chyba trzeba dać 72 godziny odpoczynku od forum..
Niestety moderatorzy nie czuwają nad tym...

Wracając do tematu to wychodząc z założenia, że przeciętny user nie wykona żadnej akcji na stronie w czasie nie krótszym niż 2 sekundy, a robot "przeskoczy" bardzo szybko możemy zrobić to w następujący sposób:

- zapisujemy w bazie danych IP klienta który wykonuje żądanie HTTP;

- przy następnym żądaniu (wywołaniu strony) sprawdzamy jaki czas minął między kolejnymi żądaniami z danego IP i jeśli jest mniejszy niż przyjęty przez nas interwał czasu np 2 sekundy dopisujemy dane IP do tabeli zbanowanych jednocześnie odczytując zbanowane IP dynamicznie tworzymy plik .htaccess blokujący dane IP.

- wiec jeśli teraz będziemy mieli kolejne żądanie apache odczyta plik .htaccess sprawdzając pod kontem tego zbanowanych i zablokuje dostęp do naszych zasobów.

- co jakiś czas czyścimy bazę/tabelę tych IP ( będą w niej też "dobre" IP) aby niepotrzebnie nie urosła do dużych rozmiarów co zwiększa czas jej przeszukiwania. Czyszczenie tabeli możemy zrealizować cronem.

:)

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

@Mion: Twój sposób jest rzeczywiście ciekawy i powinien wyciąć wiele natrętnych botów. Ja bym jeszcze sprawdzał dwie rzeczy:

- czy adresy IP są z tej samej klasy C (ostatnio miałem kilka takich przypadków - załatwiłem to wycinając cały zakres IP w .htaccess);

- czy podejrzana aktywność pochodząca z jednego adresu IP jest powtarzalna w dłuższym odcinku czasu (np. tydzień). Jeżeli coś pod to podpadnie to za recydywę powinno trafić na stałą czarną listę.

Polecam moje pluginy do WordPress'a: WyPiekacz, Meta SEO Pack, User Locker, Google Integration Toolkit i wiele innych :)

Poradnik Webmastera ‰ Ostatnio na blogu:

PoradnikWebmastera-Blog.1.gif

Odnośnik do komentarza
Udostępnij na innych stronach

- zapisujemy w bazie danych IP klienta który wykonuje żądanie HTTP;

- przy następnym żądaniu (wywołaniu strony) sprawdzamy jaki czas minął między kolejnymi żądaniami z danego IP i jeśli jest mniejszy niż przyjęty przez nas interwał czasu np 2 sekundy dopisujemy dane IP do tabeli zbanowanych jednocześnie odczytując zbanowane IP dynamicznie tworzymy plik .htaccess blokujący dane IP.

- wiec jeśli teraz będziemy mieli kolejne żądanie apache odczyta plik .htaccess sprawdzając pod kontem tego zbanowanych i zablokuje dostęp do naszych zasobów.

- co jakiś czas czyścimy bazę/tabelę tych IP ( będą w niej też "dobre" IP) aby niepotrzebnie nie urosła do dużych rozmiarów co zwiększa czas jej przeszukiwania. Czyszczenie tabeli możemy zrealizować cronem.

Częściowo masz rację, ale nie jest rozwiązanie ani optymalne, ani do końca sensowne. "Boty" o których piszecie to nie zawsze są roboty sieciowe, czasem to np. tworzenie kopii strony do przeglądania offline - i dla nich typowe jest zachowanie 100stron na minutę. Da się je zablokować, ale trzeba to zrobić "podstepnie" (myślisz w dobrym kierunku, boty bardzo różnią się w działaniu od ludzi). Druga sprawa - nie powinno się blokować .htaccess (404?) dostępu dla "bota", bo jeśli to prawdziwy bot (G/msn/Y!) to strona nie trafi do indeksu - zamiast tego trzeba zwracać 503 - co zostanie poprawnie obsłużone (Bot wróci po bliżej nie określonym czasie) - i nie zrobimy sobie problemu.

To po krótce, bo sensowny opis BotBlockera zająłby mi za dużo czasu - jutro wdrożenie, a noce są takie krótkie latem ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Chyba oczywiste jest, że pomijamy IP znanych botów jak google bota;

A rozwiązanie jest jak najbardziej sensowne i co więcej optymalne.

Jeśli piszesz 100 stron na minutę to od razu iP kienta dostaje bana;

Nikt nie pisze bota który pobiera po 2 strony na minute, bo ... pomyśl sam dalczego.

A epoka klientów pobierający strony do przeglądania ofline i serwerów z 10gb transferu/miesiac za 50 zł już daaaaaaawno minęła.

Poza tym to nic ciekawego nie napisałeś w tym temacie. Takie masło maślane ;)

Pozdrawiam

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

przeciętny user nie wykona żadnej akcji na stronie w czasie nie krótszym niż 2 sekundy

ale nieprzeciętny już wykona, szkoda go blokować ;) ja jak wpadam na serwis informacyjny to najpierw otwieram w zakładkach to co mnie interesuje, 1-2 na sekundę pewnie to jest, a później czytam...

a przede wszystkim dochodzą do tego bardzo częste (u mnie przynajmniej) błędy przy zapisie tych IP, np. zdublowane rekordy, czasami i się zapisze 5 takich samych (choć w sumie można dać indeks podstawowy na czas i po kłopocie),

to co kilka postów wyżej opisałem wydaje mi się najprostsze, najmniej obciążające (raz na 5 minut sprawdzamy, odsłona to tylko jeden insert IP), i łapie tam się to co powinno :)

Odnośnik do komentarza
Udostępnij na innych stronach

ja jak wpadam na serwis informacyjny to najpierw otwieram w zakładkach to co mnie interesuje, 1-2 na sekundę pewnie to jest, a później czytam...
Jak widać nie przewidziałem takiej ewentualności :P

Wiec można to obejść w ten sposób:

w wypadku wykrycia tej nieludzkiej ;) aktywności klienta przekierowujemy usera na stronę i informacja:

UWAGA wykryto nadmierną aktywność z tego IP mogącą sugerować odwiedziny niechcianego boota sieciowego w celu dalszego kontynuowania przeglądania serwisu kliknij na 2 (Losowa cyfra) A pod spodem np. cztery grafiki z cyframi 1 | 2 | 3 | 4

moim zdaniem jest to w miarę eleganckie rozwiązanie w wypadku wykrycia właśnie nadmiernej aktywności faktycznie człowieka jako usera, a nie bota...

Twój sposób Kawiorek też jest dobry, ale zaimplementował bym do tego dynamicznie tworzony .htaccess i IP jakie wykryliśmy jako botowe.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

  • 7 miesięcy temu...

Sorka za odkopywanie tematu.. Ale chciałem wtrącić, że ja to robie w ten sposób:

1. Szukaj, czy to BOT Goole, MSN itd...

2. Jeśli nie, zapisz jego aktywnoć

3. Jeśli mineły mniej niż 2 sekundy to wyświetl:

"

Zabezpieczenie Anty-Flood wykryło częste akcje, co może znaczyć, iż jesteś BOTem.

Za kilka sekund ta strona odświeży się, na tą którą chciałeś zobaczyć.

Przepraszamy za kłopoty, jednak takie zabezpieczenie jest konieczne.

"

4. Oczekuje ~8 sekund i odświeża stronę.

To zalatwia sprawę. Jeżeli user otworzy i 20 zakładek, to na 19 zobaczy ten napis... Jednak w maiarę jak będzie czytał, to tamte zakłądki powoli będą się same odblokowywały. Jeżeli to natomiast będzie BOT - ciągle będzie widział ten napis, bo zbyt częste odświeżanie spowoduje, że strona automatycznie się nie odświeży.

Dodatkowo stosuję metodę, która jeżeli wykryje ponad 40 pod rząd takich komunikatów, to blokuje dostęp do strony (tym samym komunikatem) na 1 min.

Mam nadzieję, że to komuś pomoze :)

Pozdrawiam :unsure:

twitter.com/JakubKrol - informacje o tym co robimy | TheFirstPath.com - aplikacje natywne, mobile, strony WWW, CMS

Odnośnik do komentarza
Udostępnij na innych stronach

<?php

$losuj = rand(1,1111111111111);

?>

<div id"<?=$losuj?>"Moja treść yee ;d!</div>

I wyżej w head dodajesz se style wraz ze id również pobieranym z $losuj.

W ten sposób masz w innym divie treść za każdym razem.

Ominie to m.in wyszukiwanie za pomocą div, jak to działają wyszukiwarki mp3.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności