Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Blokada hotlingu skryptem php
Forum PHP.pl > Forum > PHP
iRas
Witam,

Ze względu na nieautoryzowane odsyłanie do plików z obcych witryn popełniłem taką oto konstrukcję:

  1. <?php
  2. $_error_message = 'UWAGA! Proba pobrania pliku z zewnetrznego serwera!<br />Zostales zablokowany!!!<br />Jesli uwazasz ze nieslusznie, skontaktuj sie z administratorem';
  3.  
  4. //$allowed[] = "mozna.wpisac.nowa.pl";
  5. $allowed[] = "jakas.istniejaca.pl";
  6. $allowed[] = "nastepna.info";
  7. $host = $_SERVER['HTTP_REFERER'];
  8.  
  9. $_allowed = false;
  10. foreach($allowed as $ip) {
  11. if (ereg($ip, $host)) $_allowed = true;
  12. }
  13. // skryp wyświetla info, o nielegalnym dostepie do pliku
  14. if(!$_allowed) die($_error_message);
  15. // jesli jestes wyjatkowy - wykonywana jest dalsza czesc skryptu
  16. echo "<br />";
  17. echo "Przychodzisz ze strony >$host<";
  18. echo "<br />";
  19. echo "Twoja strona jest wyjatkowa tongue.gif";
  20. echo "<br />";
  21. echo "Mozesz pracowac dalej tongue.gif";
  22. ?>


Nie jestem specjalistą od PHP, dlatego proszę zorientowanych w temacie, o rzeczowe uwagi.
Pozdrawiam
iRas
CuteOne
A nie lepiej użyć do tego sprawdzonych metod? mówię o regułce w .htaccess
zegarek84
ktoś jeszcze może wejść na stronę bezpośrednio, lub może mieć blokowanego referera przez firewal czy inne - przy braku referer'a powinieneś raczej wyświetlić dany obrazek/stronę...

i właśnie jeśli chodzi o obrazki to w zasadzie jeśli po wejściu na stronę w sesji zapiszesz sobie jakiś znacznik, iż otwarto Twoją stronę wcześniej, to przy otwieraniu obrazka sprawdzasz ten znacznik w sesji i wyświetlasz obrazek jeśli jest on ustawiony - w ten sposób np. użytkownicy z Twojej strony też poprawnie widzieli by obrazek na cudzej stronie (moim zdaniem na plus) zaś obcy zobaczy komunikat... w zasadzie osoba hot linkująca dzięki temu nie wiedziała by, iż jest stosowane jakieś zabezpieczenie gdyż obrazek po wstawieniu by widziała, gdy jest jakiś referer nie akceptowalny (nie pusty) i brak znacznika to wyświetlaj komunikat z której strony obrazek pochodzi (dodatkowo mini reklama...)
iRas
.htaccess - z kilku względów odpada. Fakt jest najprostszy, ale nie na tym mi zależy.

Powyższy skrypt jest w zasadzie szkieletem, ideą dla nagłówka skryptu pobierającego plik. Nie zależy mi na ukryciu jego działania. W miejscu obecnego komunikatu będzie przekierowanie do strony z wyborem - czy pobierający chce przejść do mojej strony pobierania, czy wrócić na stronę która go tu przysłała. Obejścia bezpośredniego niema, to blokuje skrypt downloadu. Istotne jest to by pliki mogły być pobierane z witryn które o to poproszą i otrzymają na to zgodę. Wszystkie pozostałe oprócz informacji, mają otrzymać wybór. Taka jest idea. To jest jedna z przyczyn dlaczego odpada - .htaccess . Dopóki starcza mi transferu, robię przekierowania automatyczne. Gdy zacznie go ubywać zrobię informację z wyborem, gdy będzie na ukończeniu blokadę całkowitą. Jak już napisałem - nie jestem biegłym w php - dlatego zapytałem czy taka konstrukcja nie narobi szkód.

Dzięki za dotychczasowy odzew.
iRas
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.