محدود کردن دسترسی به سایت با فایل .htaccess

سلام

اکثر وبمسترها به دنبال راهی هستند تا جلوی برخی دسترسی‌های ناخواسته را بگیرند و یا بارگزاری یک سری فایل‌ها توسط ربات‌ها یا افراد سودجو جلوگیری کنند و دسترسی این افراد به یک سری فولدرها یا فایل‌های خاص را ببندند. احتمالا اولین راهی به آن فکر می‌کنید استفاده از پلاگین هست، اما ما می‌خواهیم در این مطلب به شما آموزش دهیم تا چگونه بدون استفاده از پلاگین و با استفاده از امکاناتی که آپاچی در اختیار شما قرار می‌دهد سطح دسترسی‌های مختلفی تعیین کنید و به مراد دل خود برسید.

تفاوتی ندارد کنترل پنل شما سی‌پنل باشد یا دایرکت ادمین، یا حتی پلسک و سنت او اس پنل. صرفا کافی است که روی سرور شما آپاچی نصب و فعال باشد و قابلیت استفاده از فایل .htaccess را هم داشته باشید تا با این آموزش و رول‌هایی که در پایین ذکر می‌شود بتوانید سطح دسترسی‌های مختلفی برای بازدید از سایت و فایل‌های خاص و دایرکتوری‌های مخصوص ایجاد کنید.

وارد فایل منیجر خود شوید و در پوشه‌ای که سایت شما از طریق وب قابل دسترس می‌باشد وارد شوید. این پوشه در سیستم‌عامل لینوکس public_html و سیستم‌عامل ویندوز نیز wwwroot یا httpdocs می‌باشد.

سپس فایل .htaccess را پیدا کنید. این فایل در سیستم‌عامل‌ها جزو فایل‌های پنهان می‌باشد که با توجه به نوع کنترل پنل خود باید فایل‌های مخفی را قابل مشاهده کنید.

فایل را ادیت کنید تا با توجه به رول‌هایی که پایین می‌نویسیم دسترسی به سایت خود را محدود کنید.

 

اگر می‌خواهید سایت را برای همه و حتی خودتان از دسترس خارج کنید این کد را به فایل اضافه کنید:

deny from all

اگر می‌خواهید دسترسی به پسوند خاصی مثل .php را ببندید این کد را به ابتدای فایل اضافه کنید:

<Files ~ “\.php$”>
Order allow,deny
Deny from all
</Files>

و البته اگر هم می‌خواهید پسوند دیگری مثل .sh را ببندید این کد را باید اضافه کنید:

<Files ~ “\.sh$”>
Order allow,deny
Deny from all
</Files>

اگر می‌خواهید جلوی دسترسی به یک فایل خاص را بگیرید این کد را باید اضافه کنید:

<Files wp-login.php>
order allow,deny
Deny from all
</Files>

اگر می‌خواهید جلوی دسترسی یک آی پی خاص را بگیرید این کد را باید اضافه کنید:

deny from 123.456.789.123

اگر می‌خواهید جلوی دسترسی یک رنج آی پی یا تعدادی آی پی از یک رنج را بگیرید باید این کد را اضافه کنید:

deny from 123.456.789.

و با این کد از آی پی 123.456.789.0 تا 123.456.789.255 بلاک می‌شوند.

اگر می‌خواهید جلوی دسترسی به یک دامین خاص را بگیرید تا یوزرهایی که از آن دامنه روی لینک سایت شما کلیک می‌کنند وارد سایت شما نشوند و خطای ۴۰۳ بگیرند باید این کد را اضافه کنید:

SetEnvIfNoCase Referer “targetdomain.com” bad_referer
Order Allow,Deny
Allow from ALL
Deny from env=bad_referer

اگر می‌خواهید بازدیدکنندگانی که از یک دامنه خاص به سایت شما ارجاع داده می‌شوند را بلاک کنید و خطای Internal Server Error ببینید باید این کد را اضافه کنید:

RewriteEngine on
RewriteCond %{HTTP_REFERER} example\.com [NC,OR]
RewriteRule .* – [F]

 

بلاک از طریق IP Blocker سی پنل

در صورتی هم که فقط می‌خواهید آی پی بلاک کنید و کنترل پنل شما سی پنل باشد، خود سی پنل این امکان را به شما می‌دهد تا آی پی بلاک کنید.

در سی پنل گزینه IP Blocker را سرچ کنید و روی آن کلیک کنید

این تنظیمات در این بخش وجود دارد:

Single IP Address: 192.168.0.1
Range: 192.168.0.1-192.168.0.40
Implied Range: 192.168.0.1-40
CIDR Format: 192.168.0.1/32
IP Block: 192.

با سینگل آی پی، یک آی پی بلاک می‌شود.

با بلاک کردن یک رنج، از مثلا 192.168.0.1 تا 192.168.0.40 را بلاک می‌کنیم.

با Implied Range هم تقریبا مشابه رنج است اما در همان ساب‌نت.

فرمت CIDR هم ساب‌نت می‌دهیم تا یک تعداد را بلاک کند.

گزینه آخر نیز مثلا اگر 192. را وارد کنیم یعنی از 192.0.0.0 تا 192.255.255.255 را بلاک می‌کند.