Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Blokada masowych ssaczy.
Forum PHP.pl > Forum > Przedszkole
maximus
Jak można się zabespieczyc przed masowymi ssaczami używającymi
takich programow jak webstripper?

Czy jest jakas skuteczna metoda?


I drugie:

Jak wysłać plik graficzny (jpg) do przeglądarki aby ta zinterpretowała to
jako plik do pobrania (a nie wyświetlała grafiki) i uruchomiła całą procedurę "zapisz"?
fiflus
to odpowiedź na 2

  1. <?php
  2. $path = 'plik.jpg'; // sciezka pliku 
  3. header(&#092;"Content-Type: application/force-download\"); 
  4. header(&#092;"Content-Type: application/octet-stream\"); 
  5. header(&#092;"Content-Type: application/download\"); 
  6. header(&#092;"Content-Disposition: attachment; filename=\".basename($path).\";\"); 
  7. header(&#092;"Accept-Ranges: bytes\"); 
  8. header(&#092;"Content-Transfer-Encoding: binary\"); 
  9. header(&#092;"Content-Length: \".filesize($path)); 
  10. readfile($path); 
  11. exit(); 
  12. ?>
maximus
dzieki smile.gif

teraz zostaje jeszcze pyt. 1

Jak blokować masowych ssaczy?
byther
Cytat(maximus @ 2004-06-28 10:25:22)
Jak blokować masowych ssaczy?

1. Analiza logów ze statystyką, obsługa "wagi" klas IP, no i na końcu reguły. Ale do tego php jest raczej "za krótkie".
2. W wypadku małego serwisu wystarczy, gdy ustalisz, że dana klasa adresów IP nie może wchodzić na stronę częściej niż X. Ostatecznie możesz dodać obsługę grup klas adresowych. Takie "penalty points" z IRCa. ;-)

Oba punkty mają swoje "zady i walety", więc wybór należy do Ciebie.

Odpowiedz na proste pytanie: czym różni się masowy ssacz od gościa, który uważa Twój serwis za wart uwagi i spędza w nim dużo czasu?
maximus
To może uściślę:

Ten serwis to popularny site z dużymi ("ciężkimi") grafikami.

Same pliki jpg zamieszczone w serwisie ważą ponad pół GB.

Serwis cieszy się popularnością - około 5,000 unikalnych userów / dobę

nie trudno więc policzyć jak zaczyna warjować transfer gdy kilkudziesięciu
userów dziennie wpadnie na genialny pomysł pt. - "chce miec cały ten serwis u siebie na kompie" smile.gif
byther
Na siłę to możesz stworzyć system odnośników, np. na stronie o adresie index.php, odnośnik index.php?linkid=1 będzie tak naprawdę oznaczał index.php?cat=news&id=1234, index?linkid=2 to users.php?view=admins... I tak dla każdej z generowanych podstron. Wymaga to jednak sporo doświadczenia w programowaniu.

Jeżeli ten webstripper jest "kiepściuchny", spróbuj umieszczać odnośniki jako skrypty javascript lub niech każda strona sprawdza i ustawia "specjalne" ciacho (coś a la $_SERVER['HTTP_REFERER']).
maximus
Cytat(byther @ 2004-06-28 11:29:58)
Na siłę to możesz stworzyć system odnośników, np. na stronie o adresie index.php, odnośnik index.php?linkid=1 będzie tak naprawdę oznaczał index.php?cat=news&id=1234, index?linkid=2 to users.php?view=admins... I tak dla każdej z generowanych podstron. Wymaga to jednak sporo doświadczenia w programowaniu.


Wiem jak to zrobić - tylko co to zmieni?
byther
Link mają to do siebie, że są niepowtarzalne (index.php, index.php?id=1, show.php?view=dupa&user=wpisz_swojego_nicka). Jednak gdy index.php będzie miał linki składające się z index.php?id=X, to nawigacja będzie zależała od... kolejności wejścia w poszczególne linki.
index.php?id=1 -> index.php
index.php?id=2 -> users.php
index.php?id=3 -> login.php

Wchodzisz w index.php?id=2, czyli wyświetlasz users.php (podkreślam - WYŚWIETLASZ, a NIE PRZEKIEROWUJESZ).

W adresie widnieje index.php?id=2, a linki to:
index.php?id=1 -> users.php?view=group&group=admins
index.php?id=2 -> users.php?view=group&group=moderators
...

Ssacz ma jedynie wartości przed "->", więc musi znaleźć sposób na to, że adres
index.php?id=2
jest różny od
index.php?id=2, index.php?id=2

Jaśniej chyba nie potrafię tego wytłumaczyć.
maximus
dry.gif

Ja chyba jakiś tempy jestem.

Co za różnica czy w menu link będzie kierował do strony users.php czy index.php?id=2 skoro efekt - będzie ten sam (załaduje się dokładnie ta sama strona)?
orson
witam ....

chodzi o takie cos :
index.php:
Kod
strona glowna: index.php?id=1
katalog: index.php?id=2
kontakt: index.php?id=3
.
.
.
jakas strona: index.php?id=n

a po kliknieciu na katalog:
Kod
strona glowna: index.php?id=1
katalog: [aktualna strona]
kontakt: index.php?id=2
.
.
.
jakas strona: index.php?id=n-1

questionmark.gif? jezeli tak to system ciekawy ale bedzie bardzo trudny w implementacji ...
mozesz ewentualnie sprobowac z JS ... ludzie ktorzy robia mirrora strony nie uzywaja przegladarki i zapisz jako ale jakiegos programu ... a one nie radza sobie zbyt dobrze z JS wiec tak:
robisz sobie funkcje np. goTo(mode,dest) a w niej switcha/ifa i kazdy link zapisujesz tak:
  1. <a href=# onclick="goTo('local',17);">przejdz do jakiejs strony</a>

a we wlasciwej funkcji:
Kod
function goTo(mode,dest){
if (mode == 'local'){
window.href = 'index.php?id='+id;
return true;
}elseif (mode == 'out'){
window.href = dest;
return true;
}
}

czyli zostawiasz tworzenie url dla JS ... powinno pomoc ... pisalem z glowy ale sam pomysl chyba jest dobry ...
ps. mode = local oraz ilosc parametrow funkcji mozesz sobie dopasowac do wlasnego schematu linkow ... albo zmienic index.php?id= na go.php?id= i w go.php pobierac id z bazy i tam przekierowywac ....

pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.