PHP و محافظت تصاویر از دزدان پهنا باند!!! – بخش دوم
پنج شنبه 11 آذر 1389 2:04 AM
نحوه استفاده از اسکریپت
1- آپلود تصاویر
تصاویر شما بایستی در پوشه ای قرار بگیرند که توسط دیگر کاربران قابل مشاهده نباشند. مسلما در صورتی که کاربری بتواند آدرس پوشه محتوی فایلها را پیدا کرده و به آنها دسترسی داشته باشد تمام آنچه که کرده ایم بی نتیجه خواهد بود. مناسب ترین مکان جایی است که توسط وب سرور قابل دسترسی نباشد اما اسکریپت شما قابلیت دسترسی به آن را داشته باشد.
در بسیاری از وب سرور ها میبایست صفحات وب در پوشه ای به نام "public_html" یا “www” قرار بگیرند تا بتوانند توسط مرورگرها مشاهده شوند. شما میتوانید تصاویرتان را در پوشه ای در کنار این پوشه ها و نه درون آنها ایجاد نمایید. در این صورت مرورگر ها قادر به مشاهده تصاویر نخواهند بود.
2- ویرایش کردن صفحات وب
در کلیه صفحات خود بایستی تگ های تمامی تصاویر به گونه ای قرار داده شوند که لینک مستقیمی به تصویر مورد نظر نداشته باشند. چرا که در این صورت با توجه به مکان تصاویر اصولا قابل مشاهده نخواهند بود. مثلا چنین تصویری :
باید به این شکل تغییر کند:
در زمان سرقت تصاویر چه اتفاقی می افتد؟
چنانچه کاربری سعی کند لینک مستقیم به تصاویر سایت را در جای دیگری استفاده نماید، به جای مشاهده تصویر، مرورگر تصویر پیش فرضی را نشان خواهد داد که حاکی از نادرست بودن لینک تصویر است.
در صورتی که شما گزینه ایمیل را نیز فعال کرده باشید، ایمیلی نیز به شما ارسال خواهد شد که آدرس هاست مربوطه و دیگر اطلاعات به شما اعلام خواهد شد.
عملکرد این اسکریپت به چه شکل است؟
زمانی که فردی یک صفحه وب را مشاهده میکند، مرورگر تقاضای دریافت تصاویر مربوطه را نیز به وب سرور ارسال مینماید. این اسکریپ تقاضاهایی که به وب سرور میشود را تحلیل کرده و بررسی میکند که آیا تصویر مربوطه متعلق به هاستی است که شما به آن اجازه لینک مستقیم را داده اید یا خیر. اگر اینطور باشد تصویر را به هاست تقاضا دهنده میفرستد ولی در غیر این صورت وب سرور را آگاه میکند که تصویر مربوطه قابل دترسی نیست.
تغییر خروجی
برخی کاربران ترجیح میدهند زمانی که هاست غیر مجازی اقدام به مشاهده تصویر به صورت لینک مستقیم مینماید به جای فرستادن اطلاعات مبنی بر غیر قابل دسترسی بودن تصویر، یک تصویر پیش فرض به هاست مربوطه ارسال گردد. تصویر مربوطه میتواند حاوی متنی با عنوان مثلا "لینک مستقیم مجاز نیست" یا ... باشد.
در این صورت باید خطوط کد زیر تغییر کنند و به جای این کدها :
if (isset($email)) {
mail( $email, "Bandwidth Theft Alert",
"WARNING:\n\n$referrer\ntried to access\n$image\n",
"From: CHImageGuard <$email>" );
}
header( "HTTP/1.0 404 Not Found" );
چنین کدهایی در متن فایل اسکریپت نوشته شوند
if (isset($email)) {
mail( $email, "Bandwidth Theft Alert",
"WARNING:\n\n$referrer\ntried to access\n$image\n",
"From: CHImageGuard <$email>" );
}
header( "Content-type: image/gif" );
@readfile( "/your/replacement/image/filepath.gif" );
دقت کنید که به جای "/your/replacement/image/filepath.gif" باید آدرس تصویر مورد نظر خود را قرار دهید.