چطور از دسترسی مستقیم دیگران به فایلها، روی سایت خود جلوگیری کنیم؟
بسیاری از مواقع ممکن است در فولدر پابلیک (public_html) یا به اصطلاح ریشهی سایت (root) خود که گاه آن را با نام www نیز میشناسیم، فایلهایی وجود داشته باشند که قصد داشته باشیم فقط از طریق کدها و یا مثلاً بخش مدیریت سیستمی که نوشتهایم، قابل مشاهده و دسترسی باشند.
ممکن است فایلهای ما حاوی اطلاعاتی باشند که لزومی به در دسترس بودن آنها و افشای آنها نباشد و شاید کاربر شروری با حدس زدن نام و نوع فایل به سادگی به اطلاعاتی که مربوط به سایر افراد است دسترسی پیدا کند و یقیناً این اتفاق جذابی و باب میلی نیست.
برای نمونه فرض میگیرم که من تصویر پاسپورت کاربران خود را در قسمت public_html و در پوشهای به نام docs ذخیره کردهام. حالا برای جلوگیری از دسترسی مستقیم به فایلهای موجود کافی است در پوشهی مربوطه یک فایل با عنوان زیر ایجاد کنم:
.htaccess
سپس در فایل مربوطه کد زیر را وارد مینمایم:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(www\.)?ehsan.in [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?ehsan.in.*$ [NC]
RewriteRule \.(pdf|jpg)$ - [F]
توضیحات: در کد بالا کافی است به جای ehsan.in آدرس سایت خود را وارد نمایید. اگر هم ساب دومین است، ساب دومین مورد نظر را وارد کنید. در سطر آخر نیز پسوندهای مورد نظر که قصد ایجاد محدودیت روی آنها را دارید، وارد کنید که من اینجا دو پسوند jpg و pdf را ثبت کردهام.
حالا کاربران در صورت وارد کردن مستقیم مسیر فایل، با خطای 403 مواجه خواهند شد. اما از طریق خود سایت تصاویر برای آنها قابل مشاهده است.
نکته: اگر مشاهده کردید که فایل به صورت مستقیم قابل دسترسی است، نگران نشوید. در حقیقت فایل از cache مرورگر شما خوانده میشود و از طریق سرور به صورت مستقیم در دسترس نیست.
نکته: کنترل پنل مورد استفادهی من cPanel و وب سرور نیز Apache و لینوکسی است.
توی وبسایتم سعی میکنم محتوایی که تصور کنم ارزشمنده و به بقیه کمکی میکنه رو منتشر کنم. امیدوارم از مطالب وبسایت بتونید استفاده کنید و به کارتون بیاد. در ضمن اگه پروژهی تحت وبی دارید که نیاز به برنامهنویسی و اجرا داره، میتونید با شماره انتهای صفحه با من تماس بگیرید تا در موردش با هم صحبت کنیم.