Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%)
|
Witam,
Tworzę blokadę hotlink do mojego downloadu:
Niestety nawet przy klikaniu na link z mojej strony przekierowuije mnie na podstronę hotlink sucks. Kombinowałem już z innymi rzeczami tego typu i albo mnie przekierowuje, albo nie pobiera. Nie doszedłem jeszcze do tego jak zrobić, żeby przy klikaniu na link z innej strony przekierowywało, a prosto z mojej pobierało... |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.05.2006 Ostrzeżenie: (0%)
|
Co do pierwszego nie pomogę, ale co do drugiego pytania możesz sprawdzić czy referer z którego zostało zainicjowanie rozpoczęcie ściągania pliku jest przynależny do Twojej domeny. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%)
|
Heh czego ja nie próbowałem.
Wg mnie najprościej byłoby tak: zmienna = strona polecająca; if (zmienna == moja domena) pobierz else przekieruj Tylko jak to teraz upraktycznić? |
|
|
|
Post
#4
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 112 Pomógł: 20 Dołączył: 10.04.2005 Ostrzeżenie: (0%)
|
oj oj..
spójrzmy na ten kawałek kodu:
po pierwsze - nie $_SERVER{'HTTP_REFERER'} a $_SERVER['HTTP_REFERER']. po drugie - to jak wkońcu? $_SERVER['HTTP_REFERER'] czy $HTTP_REFERER? co do samego pytania: załóżmy, że twoja strona to www.strona.pl
sprawdz najpierw za pomoca print_r($_SERVER); co dokładnie będzie w $_SERVER['HTTP_REFERER'] - nie pamietam czy bedzie z http:// na poczatku czy bez. pozdr. |
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%)
|
Cytat po pierwsze - nie $_SERVER{'HTTP_REFERER'} a $_SERVER['HTTP_REFERER']. Mogę to samo powiedzieć - [ i ] używa się jedynie w PHP3, we wszystkich nowszych używa się { i }, ale php jest też kompatybilne wstecz. Cytat po drugie - to jak wkońcu? $_SERVER['HTTP_REFERER'] czy $HTTP_REFERER? Tutaj testowałem znowu jedną rzecz, więc tak zostało (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Zaraz sprawdzę Twój kodzik edit Dzięki, dziala. No i z $_SERVER{'HTTP_REFERER'} (IMG:http://forum.php.pl/style_emoticons/default/snitch.gif) Tylko musiałem podać dokładny adres do podstrony (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Nie da się go jakoś oczyścić, żeby np było: $zmienna = $_SERVER{'HTTP_REFERER'}; $zmienna = wyciągnij jedynie http://domena.pl, a to co za ukośnikiem odetnij ? edit Dobra, sam wpadłem na ten pomysł: $polecajacy = $_SERVER{'HTTP_REFERER'}; $polecajacy = substr($polecajacy, 0, ILOŚĆ_LITER_DOMENY_WRAZ_Z_HTTP); Ten post edytował LamaMASTER 4.06.2006, 12:37:28 |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 25.07.2005 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%)
|
Dzięki za funkcję (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Tak czy siak na jedno wychodzi hehe
Mam jeszcze jeden problem, mianowicie statystyki pokazują mi zużycie transferu i nadal najwięcej zżera mi USA, chociaż strona jest kierowana do Polaków. Głównie chodzi o to, że chyba jakaś inna strona podpięła się pod mój download, ale jak te zabezpieczenie hotlink zjadają - nie wiem. Czy da się jakoś zrobić zabezpieczenie przed osobami z innych krajów? Tzn. żeby mogli pobierać tylko ci, którzy mieszkają w Polsce. |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 25.07.2005 Ostrzeżenie: (0%)
|
Ja zabezpieczam download przez plik .htaccess, kontolujący odsyłacz i dopuszczający do plików danego typu tylko z danej domeny.
Zrób sobie plik .htaccess i wrzuć w nim: Kod RewriteEngine On RewriteCond %{HTTP_REFERER} !^http://(.+\.)?domena\.pl [NC] RewriteRule .*\.(zip|exe|rar|gz|tar.gz|tar)$ http://domena.pl/hotlink.html [L] Najlepiej wrzucić w katalogu głównym, to zabezpieczenie obejmie także podkatalogi. Oczywiście zamiast "domena" wpisz swoją nazwę z której ma być dozwolone hotlinkowanie, jak widać wymienione są typy plików do których ma kontrolować hotlinki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) , można dopisać sobie inne typy jak jest taka potrzeba. Aha, no i w przypadku próby hotlinkowania z innych domen, przekieruje do pliku hotlink.html - rzecz jasna można to dowolnie modyfikować. Mam nadzieję że ten sposób się przyda. Pozdrawiam. Ten post edytował dopy 9.06.2006, 14:49:13 |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%)
|
Wielkie dzięki.
Jak to działa już się domyśliłem, bo cała moja strona używa przyjaznych linków, ale nie wiedziałem, że RewriteCond potrafi zdziałać takie cuda (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) edit Kurzcze mistrzu, wrzucam taki .htaccess nawet na inne moje serwery z downloadem dla strony i też działa jak trzeba (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) O to chodziło - teraz user jest zmuszony pobierać tylko z mojej strony nawet jeśli zna ścieżkę do pliku (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) Ten post edytował LamaMASTER 9.06.2006, 15:08:34 |
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 25.07.2005 Ostrzeżenie: (0%)
|
No sposób ten jest dość uniwersalny i przydatny - znacznie lepiej jest zabezpieczać z poziomu dostępu do plików na serwerze niż z poziomu skryptu, ponieważ poznać prawdziwą ścieżkę pliku to nie jest duży problem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Cieszę się że mogłem pomóc. Pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%)
|
|
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 225 Pomógł: 0 Dołączył: 1.11.2005 Ostrzeżenie: (0%)
|
Sory za [OT]
Mogę to samo powiedzieć - [ i ] używa się jedynie w PHP3, we wszystkich nowszych używa się { i }, ale php jest też kompatybilne wstecz. teraz to dałeś poczytaj php Solutions 3/2006 o PHP6 bo nie chce mi się przepisywać Ten post edytował Hacker 9.06.2006, 16:26:16 |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 0 Dołączył: 25.07.2005 Ostrzeżenie: (0%)
|
z tym, ze zmienna HTTP_REFERER mozna sobie wysłać samemu jakakolwiek sie chce zabezpieczenie bazujace tylko na tym, jest po prostu lipne :/ lepiej korzystac z czegos w stylu
Tu się oczywiście mogę zgodzić - prawie każde zabezpieczenie jest do obejścia (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ale jeśli chodzi o zwykłe podlinowywanie do plików z innych stron, to moje rozwiązanie w pełni wystarczy. Pozdrawiam. |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%)
|
Sory za [OT] teraz to dałeś poczytaj php Solutions 3/2006 o PHP6 bo nie chce mi się przepisywać Podaj mi dowody, że w PHP4 jest wskazane używać [ i ] zamiast { i } to uwierzę... Aha i jeszcze jedno - czemu mam wierzyć php.pl, skoro php.net mówi całkiem inaczej? Ten post edytował LamaMASTER 12.06.2006, 16:16:58 |
|
|
|
Post
#15
|
|
|
Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%)
|
Wyjasniam:
do tablic uzywa sie [ ] : $_SERVER[ 'REMOTE_ADDR' ]; do wyciagania pojedynczego znaku ze stringa { } $string = 'abc'; print( $string{1} ); // b ale [ ] tez dziala, ale ponoc jest wolniejsze i jest niezalecane |
|
|
|
Post
#16
|
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%)
|
No ale w tablicach też działa { i }, więc?
|
|
|
|
Post
#17
|
|
|
Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%)
|
więc używaj jak ci wygodniej, bo prędkości są praktycznie takie same dla obu metod
|
|
|
|
Post
#18
|
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%)
|
|
|
|
|
Post
#19
|
|
|
Grupa: Zarejestrowani Postów: 984 Pomógł: 41 Dołączył: 16.03.2002 Skąd: Płock Ostrzeżenie: (0%)
|
Typ string to nic innego jak char* w C więc tablica. {} to pewnie konstrukcja językowa mapowana na [] w języku natywnym.
Sprawdziłem prędkość wyświetlania obiema metodami w pętli o 200k iteracjach i różnica była.. [] minimalnie szybsze. Ale mówię, że w normalnych warunkach prędkość jest niezauważalna więc pisz jak Ci wygodniej... |
|
|
|
Post
#20
|
|
|
Grupa: Zarejestrowani Postów: 160 Pomógł: 0 Dołączył: 27.03.2006 Ostrzeżenie: (0%)
|
Typ string to nic innego jak char* w C więc tablica. W C string to wcale nie to samo co char* (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ale dzięki za odpowiedź, już się przyzwyczaiłem do { i } (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
|
![]() ![]() |
|
Aktualny czas: 25.10.2025 - 01:28 |