
Tworzysz serwis, zdobywasz autorów, pozyskujesz ciekawe zdjęcia… mozolną pracą zdobywasz oglądalność i cieszysz się z każdego tysiąca odsłon. Aż tu pewnego dnia serfując po sieci zauważasz, że gdzieś w sieci ktoś zamieścił u siebie Twój artykuł bez Twojej zgody i to jeszcze ze zdjęciami wyświetlanymi z Twojego serwera. Czasem złodziej (nazywajmy rzeczy po imieniu) umieszcza informację skąd pochodzi dana treść, ale przecież Ty na to nie wyraziłeś zgody!
Można oczywiście napisać prośbę o usunięcie danej treści i czekać aż autor strony to zrobi albo i nie. Jeśli do owego artykułu zostały dodane zdjęcia wyświetlane wprost z Twojego serwera można podmienić je na inne ;)
Można wyróżnić obecnie dwa sposoby wyświetlania grafiki na serwisach internetowych:
- klasyczny, polegający na bezpośrednim adresowanie pliku grafiki
- poprzez skrypt (np. php) pośredniczący pomiędzy plikiem graficznym a przeglądarką, który zazwyczaj ma na celu skalowanie/kadrowanie grafiki do odpowiednich rozmiarów i często cachowanie.
W obu przypadkach możemy mieć wpływ na to co wysyłamy do przeglądarki w zależności od tego co sobie wymyślimy. Nam zależy na wykryciu adresu strony, która zgłasza się po plik i odpowiednim zareagowaniu. Posłużymy się przy tym zmienną $_SERVER["HTTP_REFERER"], która zawiera adres poprzedniej strony a w naszym przypadku adres strony na której ma zostać wyświetlana nasza grafika.
Jako, że będziemy robili to w php to drugi przypadek ze skryptem pośredniczącym w wyświetlaniu grafiki napisanym w php upraszcza całą zabawę. Na początku znajdujemy grafikę, którą chcemy wyświetlić zamiast oryginalnych, np.

z adresem http://leszczynowa11.pl/img/nie-kradnij.gif
Nasz kod php do zamieszczenia na początku skryptu pośredniczącego w wyświetlaniu grafiki wygląda następująco:
1 if (eregi("zamiescilem-nie-swoja-tresc.pl", $_SERVER["HTTP_REFERER"])) {2 header("location: http://leszczynowa11.pl/img/nie-kradnij.gif");3 exit;4 }
Prościutkie, prawda? ;)
Można się pokusić o wyświetlanie kilku grafik wybieranych losowo:
01 if (eregi("zamiescilem-nie-swoja-tresc.pl", $_SERVER["HTTP_REFERER"])) {02 $img = array(03 "http://leszczynowa11.pl/img/nie-kradnij.gif",04 "...",05 "..."06 );07 srand((float) microtime() * 10000000);08 $rand = array_rand($img);09 header ("location: " . $img[$rand]);10 exit;11 }
w tablicy $img można zamieścić dowolną ilość adresów URL grafik.
Sprawa się komplikuje, gdy wyświetlamy grafiki w sposób klasyczny, wtedy musimy wykorzystać mod_rewrite. W tym celu tworzymy plik .htacces, który zamieścimy w katalogu gdzie trzymamy nasze pliki (w przykładzie jest to “images”). Skrypt będzie też działał w podkatalogach:
1 RewriteEngine on2 RewriteBase /images3 RewriteRule (.*) index.php
Tworzymy do tego skrypt php, który od teraz będzie pośredniczył w wyświetlaniu wszystkich grafik znajdujących się w tym katalogu:
01 $dir = "/images/";02 $file = str_replace($dir, "", $_SERVER["REQUEST_URI"]);03 if (eregi("zamiescilem-nie-swoja-tresc.pl", $_SERVER["HTTP_REFERER"])) {04 $img = array(05 "http://leszczynowa11.pl/img/nie-kradnij.gif",06 "...",07 "..."08 );09 srand((float) microtime() * 10000000);10 $rand = array_rand($img);11 header ("location: " . $img[$rand]);12 exit;13 }14 $fp = fopen($file, "r");15 fpassthru($fp);16 fclose($fp);
Mamy rozwiązanie na oba przypadki i uśmiech na twarzy gdy u kogoś zamiast naszego zdjęcia pokaże się inne :)
Jak już się rozkręciliśmy, to warto dorzucić jeszcze parę linijek i śledzić gdzie nasze zdjęcia się wyświetlają poza naszym serwisem. Całość najprościej logować w bazie MySQL.
Tworzymy tabele “img”:
1 CREATE TABLE `img` (2 `id` int( 11 ) NOT NULL AUTO_INCREMENT ,3 `data` timestamp NOT NULL default CURRENT_TIMESTAMP ,4 `url` varchar( 255 ) NOT NULL ,5 `img` varchar( 255 ) NOT NULL ,6 PRIMARY KEY ( `id` )7 );
i parę linijek php do zamieszczenia na początku:
01 if ($_SERVER]"HTTP_REFERER"] && !eregi ("nasz-serwis.pl", $_SERVER["HTTP_REFERER"])) {02 $db = array(03 "host" => "localhost",04 "user" => "user",05 "name" => "db",06 "pass" => "pass"07 );08 $dblink = @mysql_connect($db["host"], $db["user"], $db["pass"]);09 mysql_select_db($db["name"], $dblink);10 $query = "INSERT INTO img (url, img) VALUES ('" . addslashes ($_SERVER["HTTP_REFERER"]) . "', '" . addslashes ($_SERVER["PATH_INFO"]) . "')";11 mysql_query ($query);12 }
Oczywiście w paru miejscach trzeba zmienić wartości pod wasz serwis.
Miłego podmieniania :)




Zdarza się, że niektórzy podmieniają ilustracje na mniej przyzwoite ;) A na forach w których internauci dzielą się plikami przez serwisy typu radpishare czasami da się zauważyć obrazek z tekstem “ściągaj majtki, nie filmy”, to dzieło ludzi ze Stopklatki :)
Jak nasz grafik wróci, to poproszę go o kilka graficzek pod różnego typu serwisy :)
Właśnie się zastanawiałem, czemu nie napisaliście tego wcześniej, od razu po kradzieży:).
Z resztą jak sami mogliśmy się przekonać (http://like-a-geek.jogger.pl/2009/08/03/) sposób jest skuteczny.
Powod prozaiczny – brak czasu by to sklecic ;)
Twoj link prowadzi do pustki :)
Witam,
interesuje mnie tematyka przez Pana poruszana w artykule.
Jeżeli byłby Pan zainteresowany umieszczeniem tego artykułu na naszej stronie oraz dłuższą współpracą zapraszam do kontaktu.
Pozdrawiam
Olga Sładkowska
Software Press