Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php][apache] Blokowanie IP
Tagrussel
post 12.02.2008, 21:16:48
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 7.08.2007

Ostrzeżenie: (0%)
-----


Witam
Wie ktoś jak zrobić by zablokować IP które łączyło się w jakimś czasie więcej razy z moja stroną niż ja na to pozwolę. Tzn. ustalam, że np. z każdego IP można wywołać moją stronę 200 razy na 5 min, jeśli wywoła ją 201 razy to zostanie to IP zablokowane na określony przeze mnie czas.
Nie wiem za bardzo jak się do tego zabrać, szukałem w necie i nic co by mi mogło odpowiadać nie znalazłem.

Za wszelkie rady albo linki do miejsc gdzie je dostanę będę wdzięczny smile.gif
Go to the top of the page
+Quote Post
redelek
post 12.02.2008, 21:34:28
Post #2





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

Ostrzeżenie: (0%)
-----


Cytat(Tagrussel @ 12.02.2008, 21:16:48 ) *
Witam
Wie ktoś jak zrobić by zablokować IP które łączyło się w jakimś czasie więcej razy z moja stroną niż ja na to pozwolę. Tzn. ustalam, że np. z każdego IP można wywołać moją stronę 200 razy na 5 min, jeśli wywoła ją 201 razy to zostanie to IP zablokowane na określony przeze mnie czas.
Nie wiem za bardzo jak się do tego zabrać, szukałem w necie i nic co by mi mogło odpowiadać nie znalazłem.

Za wszelkie rady albo linki do miejsc gdzie je dostanę będę wdzięczny smile.gif


W samym apache to nie widziałem ale możesz zrobić to na iptables tam można robić różne cuda, pod warunkiem że masz linux albo IPF jeśli masz Unix smile.gif
inaczej to może być ciężko lub niewykonalne, ale raczkuję w php może takie cuda są smile.gif
Popytaj na forach ze swoim systemem

Redelek


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
kosmowariat
post 12.02.2008, 22:47:01
Post #3





Grupa: Zarejestrowani
Postów: 235
Pomógł: 17
Dołączył: 18.07.2007
Skąd: Białystok

Ostrzeżenie: (0%)
-----


w samym apache chyba nie da się tego zrobić, da się natomiast na stałe zablokować pewne IP. polecam zrobienie bazy danych i zapisywanie tam ilości wyświetleń ;-)
Go to the top of the page
+Quote Post
windman
post 13.02.2008, 03:27:14
Post #4





Grupa: Zarejestrowani
Postów: 184
Pomógł: 13
Dołączył: 7.01.2008

Ostrzeżenie: (0%)
-----


nie wiem, czy o to chodzi ale spróbuję...

tutaj masz ip gościa, który odwiedza stronę - $_SERVER["REMOTE_ADDR"]

za każdym razem jak ktoś wchodzi na stronę dopisujesz sobie do bazy albo do pliku dla tego ip wizyty +1
(wystarczą w sumie 2 pola, 'ip', 'wizyty')

jeśli takiego ip jeszcze nie ma to dodajesz nowy rekord, gdzie wizyty = 1 a ip = $_SERVER["REMOTE_ADDR"].
Jeśli ip już jest to to tylko wizyty +1.

No a później to już:
  1. <?php
  2. if($wizyty>=500){
  3.  echo "Panu już dziękujemy"; 
  4.  exit;
  5. }
  6. ?>


Z zapytaniami do bazy albo do pliku pewnie sobie poradzisz...?!

Pamiętaj o dynamicznych ip, nie wystarczy sprawdzić tylko ip aby rozpoznać konkretny komputer.

Pozdrawiam
Go to the top of the page
+Quote Post
Tagrussel
post 13.02.2008, 05:59:01
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 7.08.2007

Ostrzeżenie: (0%)
-----


Cytat(windman @ 13.02.2008, 03:27:14 ) *
Z zapytaniami do bazy albo do pliku pewnie sobie poradzisz...?!

Pamiętaj o dynamicznych ip, nie wystarczy sprawdzić tylko ip aby rozpoznać konkretny komputer.


Nad tym też właśnie się zastanawiałem, czy istnieje w ogóle jakaś możliwość wykrycia kogoś takiego? Sprawdzanie numeru MAC karty sieciowej, go też da się zmienić, ale już nie tak łatwo? Tylko czy jest to ma sens i jest możliwe do zrobienia? A może jeszcze jakieś inne rozwiązanie typu ciasteczko?


Z zapytaniami nie ma problemu smile.gif
Za porady dzięki smile.gif

Ten post edytował Tagrussel 13.02.2008, 06:35:26
Go to the top of the page
+Quote Post
windman
post 13.02.2008, 13:59:53
Post #6





Grupa: Zarejestrowani
Postów: 184
Pomógł: 13
Dołączył: 7.01.2008

Ostrzeżenie: (0%)
-----


o sprawdzaniu MAC nie słyszałem, ale nie siedzę zbyt długo&nbsp;w PHP.

Można oczywiście dopracować skrypt, aby lepiej identyfikował danego użytkownika.

Ciasteczko jest chyba najprostszym rozwiązaniem ale niestety bardzo łatwo je wyłączyć.
Ja stosuję ciasteczka do sprawdzania, które wiadomości na mojej stronie zostały przeczytane przez danego użytkownika.
Jako ciasteczko towrzę tablicę: news[id_news]

Jak ktos wyświetla newsa to sprawdzam, czy ciasteczko np: news[12]==1, jeśi nie to rekord do bazy, że dana wiadomość została przeczytana.

Generalnie można kombinować z tablicą $_SERVER, zawiera ona między innymi informacje o systemie operacyjny, przeglądarce itp.

Pozdrawiam
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 09:40