Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> hotlink i idntyfikacja url
mirobor
post 20.02.2017, 22:12:30
Post #1





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 1.02.2014

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


Mam taką zagwostkę.
Zewnętrzne serwisy wczytują konkretne pliki jpg z mojego hostingu.
Wczytywane są tylko pliki -nie mogę podrzucać im ani php, ani js, ani żadnych innych kodów.
Jakie są możliwości abym w czasie jako tako rzeczywistym przechwytywał url'e które zwracają się do mnie po pliki?

Go to the top of the page
+Quote Post
trueblue
post 20.02.2017, 22:18:34
Post #2





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


http://stackoverflow.com/a/9959148


--------------------
Go to the top of the page
+Quote Post
Tomplus
post 20.02.2017, 22:39:17
Post #3





Grupa: Zarejestrowani
Postów: 1 875
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Parafrazując kod z StackOverFlow:

  1. $img = 'imageFolder/{$_GET['name']}.jpg';
  2. header('Content-Type: image/jpeg');
  3. readfile($img);


Ale nie można zapomnieć także o .htaccess

Kod
RewriteRule ^imageFolder\/([a-z0-9]{1,64})\.jpg$ /imageScript.php?name=$1


Ja korzystam z m/w takiego kodu do kontroli obrazów i przy okazji można przetwarzać np. dodając znak wodny.
Go to the top of the page
+Quote Post
mirobor
post 20.02.2017, 23:57:11
Post #4





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 1.02.2014

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


Pięknie to działa z .htaccess, ale jak tą metodą uzyskać url ? $_SERVER['HTTP_HOST'] zwraca mi przecież url pliku php.
Go to the top of the page
+Quote Post
Tomplus
post 21.02.2017, 07:37:20
Post #5





Grupa: Zarejestrowani
Postów: 1 875
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Myślę że to powinno pomóc:
$_SERVER['QUERY_STRING']
Go to the top of the page
+Quote Post
mirobor
post 21.02.2017, 11:51:00
Post #6





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 1.02.2014

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


hmm, nie wiem, czy się dobrze rozumiemy.
.htaccess przekierowuje do pliku php, który na podstawie zmiennej w GET serwuje plik jpg. I wszystko pięknie. Ale jak pozyskać pełne url'e stron które zgłaszają się po ten plik?
Dodam, że nie znam urls serwisów, które wczytują plik z mojego hostingu.
O czym mam poczytać? Kopnijcie w dobrym kierunku.


Ten post edytował mirobor 21.02.2017, 11:51:49
Go to the top of the page
+Quote Post
viking
post 21.02.2017, 12:00:28
Post #7





Grupa: Zarejestrowani
Postów: 6 378
Pomógł: 1116
Dołączył: 30.08.2006

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


var_dump($_SERVER) i masz pełną tablicę danych jakie możesz uzyskać. Pamiętaj że nie wszystkie są zawsze dostępne (jak np referer), trzeba też je zabezpieczyć.


--------------------
Go to the top of the page
+Quote Post
Tomplus
post 21.02.2017, 15:34:15
Post #8





Grupa: Zarejestrowani
Postów: 1 875
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


@Mirobor
Testowałeś moją pomoc?

Wszystkie globalne zapytania jakie chcesz zobaczyć to jak umieścisz w kodzie funkcję: phpinfo(32); przed headerem obrazka
Zamiast obrazka, powinieneś mieć tabelkę z globalami PHP. A jeżeli to za dużo, to wystarczy użyć to co podał Viking.


Go to the top of the page
+Quote Post
mirobor
post 21.02.2017, 18:25:59
Post #9





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 1.02.2014

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


Nie radzę sobie z tym. Opiszę dokładnie.
w .htaccess dodałem rewrite
  1. RewriteRule ^myfolder\/([a-z0-9]{1,64})\.jpg$ /home/pathotofile/imageScript.php?name=$1


plik imageScript.php

  1. $img = 'myfolder/'.$_GET['name'].'.jpg';
  2. $url = '?';
  3. $file = fopen("testfile.txt", "w");
  4. fwrite($file,$url);
  5. fclose($file);
  6. header('Content-Type: image/jpeg');
  7. readfile($img);


plik php serwuje grafikę i na tym przykładzie powinien zapisać plik tekstowy z url'em który zgłosił się po grafikę.
Czytam, ale nie znalazłem w jaki sposób wykorzystać w tym var_dump($_SERVER).


Ten post edytował mirobor 21.02.2017, 18:28:21
Go to the top of the page
+Quote Post
trueblue
post 21.02.2017, 19:03:13
Post #10





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

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


Analogicznie do $_GET.


--------------------
Go to the top of the page
+Quote Post
Tomplus
post 21.02.2017, 20:18:23
Post #11





Grupa: Zarejestrowani
Postów: 1 875
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


@Mirobor
Jak napisałem... Zrób sobie test.... Zrób:

RewriteRule ^myfolder\/([a-z0-9]{1,64})\.abc$ /home/pathotofile/testowySkrypt.php?name=$1

A następnie w testowySkrypt.php dodaj tylko i wyłącznie phpinfo(32);

Podlinkuj sobie na innej stronie ten myfolder/costam.abc i zobacz w którym wierszu wskaże ci się strona z której wszedłeś. Proste. Dokładnie to samo będzie z obrazkiem.
Go to the top of the page
+Quote Post
mirobor
post 21.02.2017, 20:46:26
Post #12





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 1.02.2014

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



Zrobiłem. W żadnym wierszu nie wskazuje mi URLa zewnętrznego serwera. Widzę, to co przesyłem w GET i lokalizację mojego imgeScript.php na moim serwerze. Żadnego urla z zewnątrz.
Dzięki, że Wam się chce pomimo, że mój biorytm intelektualny leży i kwiczy.


Ten post edytował mirobor 21.02.2017, 20:47:53
Go to the top of the page
+Quote Post
Tomplus
post 21.02.2017, 21:33:36
Post #13





Grupa: Zarejestrowani
Postów: 1 875
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

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


Więc skończmy temat, raz a porządnie:

Ja testowałem ów kod u siebie i otrzymałem stronę zewnętrzną. Na jednej domenie umieściłem obrazek.jpg, a na innej hotlink:
<img src='http://hotlinkowanadomena.pl/obrazek.jpg'>

Otrzymałem informację:

$_SERVER['HTTP_REFERER'] = "http://hotlinkujacy.net/podstrona/" - strona która "kradnie obrazek"
a zmienne:
$_SERVER['REDIRECT_URL'] => "obrazek.jpg" (alternatywnie [QUERY_STRING])
$_SERVER['REDIRECT_QUERY_STRING'] => name=obrazek (alternatywnie [REQUEST_URI)
informują mi który to obrazek jest "kradziony".

Go to the top of the page
+Quote Post
mirobor
post 21.02.2017, 23:23:29
Post #14





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 1.02.2014

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


Dzięki za łopatologię. Załapałem.
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: 19.07.2025 - 18:42