Skocz do zawartości

Jak blokować roboty?


Jacekalex

Rekomendowane odpowiedzi

Witam

Mam spory kłopot.

Będę się opiekował sklepem internetowym - umieszczonym na pseudohostingu (home.pl)

Potrzebuję jakoś pozbyć się niepotrzebnych robotów - które wyczerpują transfer i zamulają łącza.

Na php się nie znam wcale, na konfiguracji modułu rewrite do Apacza słabo, za to na firewallu netfilter znacznie lepiej.

Wycięcie robotów na firewallu (iptables - linux) wymaga godziny ciężkiej pracy - to wszystko.

Ale hostingi nie umożliwiają ludziom dostępu do reguł firewalla (chyba - że dostaną jakieś 8000 - 10000 na rok za serwer dedykowany) a na to mojego szefa nie stać.

W zwiazku z tym pytanie.

Jak przy pomocy pliku .htaccess czy to przy pomocy zestawu kontroli dostępu:

np.

Deny from all
Allow from ... $zmienna
gdzie zmienna=  fragment nazwy user agenta np: MSIE, Firefox, Opera, Gogleboot ... itp.

lub poprzez reguły mod_rewrite

Zasada jest taka - dostęp do strony po spełnieniu warunku - fragment łańcucha user_agent pasuje do wzorca.

Nawiasem mówiąc - widziałem na tym forum post kogoś - kto próbował blokować booty przez blokowanie w pliku .htaccess numerów IP oraz agentów użytkownika - co uważam za najgłupsze z możliwych rozwiązań.

W tamtym przypadku .htaccess osiągnął rozmiar 1 MB i potwornie zamulał szybkość serwera.

Dlatego wszystkim radzę traktować wycinanie bootów nie wg. zasady - kogo by tu zablokować, ale wg. zasady - kogo należy wpuścić.

Jeśli mamy serwer w biurze, lub dedykowany - sprawa nie jest trudna.

można na przykład tak:

pozwalamy na dostęp do serwera https:

iptables -P INPUT  DROP 
........
# tworzymy łańcuch AGENT
iptables -N AGENT 

# przekierowanie ruchu do serwera (http i https) do łańcucha AGENT 
iptables -A INPUT -s 0/0 -p tcp --dport 80 -m state --state NEW -m limit --limit 10/s -j AGENT 
iptables -A INPUT -s 0/0 -p tcp --dport 443 -m state --state NEW  -m limit --limit 10/s -j AGENT

# wpuszczamy przeglądarki internetowe
iptables -A AGENT -m-string --string "firefox" -j ACCEPT
iptables -A AGENT -m-string --string "MSIE" -j ACCEPT
iptables -A AGENT -m-string --string "opera" -j ACCEPT
iptables -A AGENT -m-string --string "Safari" -j ACCEPT
..............
# wpuszczamy roboty sieciowe
iptables -A AGENT -m-string --string "Googleboot" -j ACCEPT
iptables -A AGENT -m-string --string "OnetSzukaj" -j ACCEPT
.................

i tak dalej - czyli blokujemy wszystkich, po czym wpuszczamy tylko tych - którzy spełniają jakieś kryteria określone przez reguły - jak w każdym firewallu.

Problem polega na tym - że muszę coś takiego zrobić nie w firewallu - lecz w .htaccess.

Uważam - że takie rozwiązanie jest najlepsze z możliwych - wszystkim polecam zainteresowanie podobnym sposobem blokowania niechcianych robotów.

Tylko ... jak to zrobić w .htaccess?

Dzięki i Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

  • 3 tygodnie później...
....

Dlatego wszystkim radzę traktować wycinanie bootów nie wg. zasady - kogo by tu zablokować, ale wg. zasady - kogo należy wpuścić.

Nic bardziej błędnego w założeniu... ale jeśli nie wierzysz moim doświadczeniom to możesz przekonać się sam na przykład jak dostaniesz bana od google.

....

Tylko ... jak to zrobić w .htaccess?

Odpowiedź znajdziesz tu -> https://www.google.pl/search?hl=pl&q=ht...+Google&lr=

... i nie dziękuj za pomoc.

Odnośnik do komentarza
Udostępnij na innych stronach

Właśnie robię htaccess do strony na hostingu home.pl - wiem jak go zrobić klasycznymi metodami - jakie opisują wszyscy i stosują - mam na myśli Ludzi z tego forum.

Kierując się tymi metodami - przerobiłem wszystkie reguły mod-security ze strony gotroot.com na reguły mod-rewrite - na szczęście są podobne ( home.pl nie posiada modułu mod-security do Apacha -podobnie jak nazwa.pl i 20 innych hostingów), natomiast plik po dodaniu wszystkich robotów wg. agenta -uzytkownika i dodaniu listy IP spamerów ze strony www.sblam.com ma zaledwie 1,2 MB - i z całą pewnością zamuli działanie serwera.

Rozwiązanie typowe dla firewalli - blokuj wszystkich, wpuszczaj tylko spełniających określone kryteria pozwoliłoby zmniejszyć ten plik do ok. 50 kB - przy tym samym rezultacie.

A najlepszym dowcipem jest odpowiedź home.pl na pytanie o zabezpieczenie przed sql-injection w pliku htacccess:

Zamiana reguły:

SecRule REQUEST_URI|REQUEST_BODY "((select|grant|delete|insert| drop|alter|replace|truncate|update|create|rename|describe) [[:space:]]+[A-Z|a-z|0-9|\*| |\,]+[[:space:]] +(from|into|table|database|index|view) [[:space:]]+[A-Z|a-z|0-9|\*| |\,]| UNION SELECT.*\'.*\'.*,[0-9].*INTO.*FROM)"

na regułę:

 RewriteRule %{REQUEST_URI|REQUEST_BODY} "((select|grant|delete|insert| drop|alter|replace|truncate|update|create|rename|describe) [[:space:]]+[A-Z|a-z|0-9|\*| |\,]+[[:space:]] +(from|into|table|database|index|view) [[:space:]]+[A-Z|a-z|0-9|\*| |\,]| UNION SELECT.*\'.*\'.*,[0-9].*INTO.*FROM)" -[F]

Czyli zamiast prawdziwego firewalla aplikacyjnego do Apacha proteza w postaci modułu do przepisywania linków (którego wysoka skutecznośc w porównaniu do mod-security jest prawie żadna)

Kpina - nie hosting.

Pozdrawiam i dziękuję tylko za mądre i przemyślane odpowiedzi, natomiast nie dziekuję za bzdury i brednie.

To by było na tyle.

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