Mencuri Gambar/Foto Terproteksi Watermark yang Menggunakan PHP Auto-watermark

Sekarang ini kayaknya lagi musim photoblog apalagi dengan hadirnya instagram. Everyone is photographer these days, hahaha. Nah, suatu hari saya sedang mencari foto-foto bertema “langit malam dan bintang” di internet. Saya mendapatkan satu foto bagus tetapi sudah dipasang watermark. Wah apes nih, tau aja ni foto bagus, jadi di-watermark-in sama yang mpunya. Dari browser, saya mencoba klik kanan, “Copy Image URL” dan paste di tab baru. Ternyata gambarnya bukan di watermark secara “fisik” yang sudah nempel di gambar gitu, tapi melainkan hanya rekayasa file PHP dan bisa dibypass dan ambil gambar aslinya. Karena alesan saya kasihan, mungkin saja foto-foto doi emang diproteksi watermark biar gak dicuri hasil jerih payah jepretnya itu, saya rahasiaken website doi dan menggantinya dengan simulasi ini. Kira-kira seperti ini jika saya simulasikan…

Simulasi

Seluruh koleksi fotografinya di watermark menggunakan PHP auto-watermark yang akan mengambil path tertentu untuk dipasangkan watermarknya. Isi parameter “path” adalah kunci kita untuk mem-bypass watermark pada foto yang ingin kita curi. Inilah gambar-gambar tersebut jika disimulasikan sebagai contoh (perhatikan ada watermark yang bertuliskan “tiBandung.com” di setiap gambar):

http://inan.tibandung.com/pub/lab/watermark/watermark.php?path=a.png

http://inan.tibandung.com/pub/lab/watermark/watermark.php?path=b.png

http://inan.tibandung.com/pub/lab/watermark/watermark.php?path=c.png

http://inan.tibandung.com/pub/lab/watermark/watermark.php?path=d.png

 

Berikut ini source code watermark.php:

<?php
$imagesource = $_GET['path'];
if (!file_exists($imagesource)) die();
$filetype = strtolower(substr($imagesource,strlen($imagesource)-4,4));
if($filetype == ".png") $image = @imagecreatefrompng($imagesource);
if (empty($image)) die();
$watermark = @imagecreatefrompng('watermark.png');
$imagewidth = imagesx($image);
$imageheight = imagesy($image);
$watermarkwidth = imagesx($watermark);
$watermarkheight = imagesy($watermark);
$startwidth = (($imagewidth - $watermarkwidth)/2);
$startheight = (($imageheight - $watermarkheight)/2);
imagecopy($image, $watermark,  $startwidth, $startheight, 0, 0, $watermarkwidth, $watermarkheight);
header("Content-type: image/jpeg");
imagejpeg($image);
imagedestroy($image);
imagedestroy($watermark);
?>

Dari source di atas, bisa diketahui bahwa $_GET[‘path’] sebagai input gambar yang akan diproses oleh autowatermarking ini. Dari situ juga dapat kita ekstrak informasi berharga dimanakah letak gambar aslinya. Katakan saja jika ada gambar ter-watermark dengan alamat URL http://xxxxxx/watermark.php?path=goblog/going_blogging.jpg, itu berarti file “going_blogging.jpg” yang di watermark, file asli tanpa watermarknya terdapat di direktori http://xxxxxx/goblog/going_blogging.jpg bukan? Yooi…

Naah, untuk simulasi kita ini, untuk mengambil gambar “d.png” pada contoh di atas misalnya, tinggal akses langsung file PNG nya yang telah kita ketahui path nya. Dengan berbekal sedikit mengerti lojik program PHP auto-watermark ini, maka alamat gambar “d.png” ada di http://inan.tibandung.com/pub/lab/watermark/d.png ‘kan?? Hehe..

http://inan.tibandung.com/pub/lab/watermark/watermark.php?path=d.png
(Di bawah ini adalah gambar “d.png” dengan proteksi Watermark)

http://inan.tibandung.com/pub/lab/watermark/d.png
(Membypass Auto-watermark: Di bawah ini adalah gambar asli “d.png” tanpa diproteksi Watermark)

Solusi

Problem ini bisa diatasi dengan cara yang cukup jitu sederhana bin tundepuin yaitu filter saja direct akses yang mengarah ke image file asli yang diproteksi. Cara filter direct access pada contoh ini menggunakan file .htaccess. Sebagai contoh berikut ini isi file .htaccess yang meretriksi direct access ke seluruh file jpg, gif, png, kecuali pada akses direct ke file “d.png”:

RewriteEngine On
RewriteCond %{REQUEST_URI} !d.png$
RewriteRule \.(gif|jpg|png)$ /d.png [L]

Imbalan

Gak muluk-muluk kok.. saya cuma pengen camera DSLR Canon sebagai imbalan terima kasih 😐

2 thoughts on “Mencuri Gambar/Foto Terproteksi Watermark yang Menggunakan PHP Auto-watermark

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.