خطای 403 Forbidden چیست و چگونه آن را برطرف کنیم؟

زمان مطالعه: 8 دقیقه

اگر هنگام باز کردن یک صفحه، فایل یا پوشه از سایت با پیام خطای 403 Forbidden مواجه شده باشید، احتمالاً برایتان سؤال شده که این مشکل از کجا ایجاد شده است. این خطا به این معناست که سرور درخواست شما را دریافت و پردازش کرده، اما اجازه دسترسی به منبع موردنظر را نمی‌دهد. بنابراین، خطای 403 Forbidden معمولاً به معنای از دسترس خارج شدن سرور نیست و بیشتر به تنظیمات دسترسی، مجوز فایل‌ها و پوشه‌ها یا قوانین امنیتی مربوط می‌شود.

در سایت‌هایی که روی هاست لینوکس میزبانی می‌شوند، تنظیمات Permission و مالکیت فایل‌ها، فایل .htaccess، تنظیمات وب‌سرور و محدودیت‌های امنیتی می‌توانند باعث ایجاد این خطا شوند. البته خطای 403 ممکن است در وردپرس یا حتی در سطح سرور نیز ایجاد شود. در این مقاله ابتدا با علت خطای 403 آشنا می‌شویم و سپس روش‌های بررسی و رفع آن را در هاست لینوکس، وردپرس و سرور توضیح می‌دهیم.

خطای 403 Forbidden
خطای 403 Forbidden

خطای 403 چیست؟

خطای 403 Forbidden یکی از کدهای وضعیت HTTP است که نشان می‌دهد سرور درخواست ارسال‌شده را دریافت کرده، اما دسترسی به منبع موردنظر را مجاز نمی‌داند.

برای مثال، فرض کنید آدرس یک فایل در سایت را وارد می‌کنید. مرورگر درخواست را به وب‌سرور ارسال می‌کند، اما وب‌سرور بر اساس تنظیمات دسترسی تشخیص می‌دهد که اجازه ارائه آن فایل را ندارد. در این شرایط به جای نمایش محتوای فایل یا صفحه، پاسخ 403 Forbidden نمایش داده می‌شود.

نکته مهم این است که خطای 403 Forbidden با خطای 404 تفاوت دارد. در خطای 404 معمولاً منبع موردنظر پیدا نمی‌شود، اما در خطای 403 سرور منبع را می‌شناسد یا به مسیر آن دسترسی دارد ولی اجازه ارائه آن به درخواست‌کننده را نمی‌دهد.

این خطا ممکن است فقط برای یک فایل یا پوشه خاص ایجاد شود یا در شرایطی تمام سایت را تحت تأثیر قرار دهد.

علت خطای 403 Forbidden در هاست لینوکس چیست؟

برای رفع خطای 403 ابتدا باید علت آن مشخص شود. در هاست لینوکس چند مورد بیشتر از سایر عوامل باعث بروز این خطا می‌شوند.

مجوز نادرست فایل‌ها و پوشه‌ها

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

اگر Permission یک فایل یا پوشه به‌درستی تنظیم نشده باشد، وب‌سرور ممکن است نتواند به آن دسترسی پیدا کند و در نتیجه خطای 403 Forbidden نمایش داده شود.

برای بررسی مجوز فایل‌ها و پوشه‌ها می‌توانید در محیط SSH از دستور زیر استفاده کنید:

				
					ls -la
				
			

این دستور فهرستی از فایل‌ها و پوشه‌های مسیر فعلی را به همراه Permission، مالک و گروه آن‌ها نمایش می‌دهد.

برای نمونه، در خروجی ممکن است چیزی شبیه این ببینید:

				
					-rw-r--r--  1 user user   1250 index.php
drwxr-xr-x  2 user user   4096 public_html

				
			

مقادیر ابتدای هر خط، اطلاعات مربوط به سطح دسترسی را نشان می‌دهند. اگر این تنظیمات به‌صورت اشتباه تغییر کرده باشند، ممکن است وب‌سرور نتواند فایل موردنظر را ارائه کند.

به‌طور معمول، در بسیاری از سرورها Permission فایل‌ها و پوشه‌های سایت به شکل استانداردی مانند 644 برای فایل‌ها و 755 برای پوشه‌ها تنظیم می‌شود؛ بااین‌حال مقدار مناسب می‌تواند به ساختار سرور و نحوه پیکربندی آن بستگی داشته باشد و نباید بدون بررسی، Permission همه فایل‌ها را تغییر داد.

مالکیت اشتباه فایل‌ها و پوشه‌ها

علاوه بر Permission، مالکیت فایل‌ها نیز در لینوکس اهمیت دارد. هر فایل و پوشه یک Owner و Group دارد و اگر مالکیت آن‌ها به کاربر یا گروه نامناسبی تغییر کرده باشد، وب‌سرور ممکن است نتواند به فایل دسترسی داشته باشد.

این مشکل گاهی بعد از انتقال سایت، استخراج فایل‌های بکاپ، تغییر دستی فایل‌ها با کاربر root یا اجرای بعضی دستورات مدیریتی ایجاد می‌شود.

بنابراین اگر Permissionها ظاهراً درست هستند اما همچنان ارور 403 Forbidden دریافت می‌کنید، بررسی Owner و Group فایل‌ها نیز اهمیت دارد.

برای بررسی دقیق‌تر یک مسیر می‌توان از دستورهایی مانند ls -la یا stat استفاده کرد.

تنظیمات فایل .htaccess

فایل .htaccess یکی از مهم‌ترین فایل‌های تنظیمات در سایت‌هایی است که روی Apache یا LiteSpeed اجرا می‌شوند. قوانین موجود در این فایل می‌توانند دسترسی به فایل‌ها، پوشه‌ها و URLهای مختلف را محدود کنند.

اگر قانون اشتباهی در .htaccess قرار گرفته باشد، ممکن است یک صفحه یا حتی کل سایت با خطای 403 Forbidden مواجه شود.

برای بررسی این مورد، فایل .htaccess را باز کنید و تغییرات اخیر آن را بررسی کنید. اگر خطا بعد از ایجاد تغییر در این فایل شروع شده است، احتمال ارتباط آن با مشکل بیشتر می‌شود.

در سایت‌های وردپرسی نیز تغییرات افزونه‌ها، تنظیمات امنیتی یا بعضی افزونه‌های مدیریت URL می‌توانند باعث تغییر .htaccess شوند.

نکته مهم این است که .htaccess مخصوص Apache و وب‌سرورهای سازگار با آن مانند LiteSpeed است و در وب‌سرور Nginx به همین شکل استفاده نمی‌شود.

مسدود شدن IP یا درخواست کاربر

یکی دیگر از علت‌های خطای 403 می‌تواند مسدود شدن IP باشد. بعضی تنظیمات امنیتی یا فایروال‌های سرور، در صورت مشاهده درخواست‌های مشکوک، تعداد زیاد درخواست‌ها یا رفتار غیرعادی، ممکن است IP کاربر را مسدود کنند.

در این شرایط ممکن است سایت برای بعضی کاربران باز شود اما یک کاربر خاص با 403 مواجه شود.

اگر سایت برای شما باز نمی‌شود اما سایر کاربران به آن دسترسی دارند، بررسی IP و قوانین امنیتی سرور می‌تواند به پیدا کردن علت کمک کند.

تنظیمات امنیتی سایت

سیستم‌های امنیتی سایت نیز می‌توانند باعث ایجاد 403 شوند. برای مثال، در وردپرس بعضی افزونه‌های امنیتی برای جلوگیری از درخواست‌های مشکوک، دسترسی IPها، URLها یا فایل‌های خاص را محدود می‌کنند.

در چنین شرایطی خطای 403 Forbidden لزوماً به Permission فایل‌ها مربوط نیست و ممکن است یک قانون امنیتی باعث رد شدن درخواست شده باشد.

تنظیمات وب‌سرور

گاهی مشکل از تنظیمات وب‌سرور است. Apache، LiteSpeed و Nginx هرکدام تنظیمات و قوانین خاص خود را برای کنترل دسترسی دارند.

اگر تنظیمات وب‌سرور به‌درستی انجام نشده باشد یا یک قانون محدودکننده در پیکربندی آن وجود داشته باشد، درخواست کاربر ممکن است با کد 403 پاسخ داده شود.

در این شرایط، معمولاً بررسی لاگ‌های وب‌سرور می‌تواند اطلاعات بیشتری درباره علت خطا ارائه دهد.

نبودن فایل Index

وقتی کاربر یک پوشه را در مرورگر باز می‌کند، وب‌سرور معمولاً به دنبال فایل‌هایی مانند index.php یا index.html می‌گردد.

اگر فایل Index وجود نداشته باشد و Directory Listing نیز در سرور غیرفعال باشد، ممکن است دسترسی به آن پوشه با خطای 403 Forbidden مواجه شود.

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

تفاوت خطای 403 با خطاهای مشابه چیست؟

شناخت تفاوت کدهای خطای HTTP کمک می‌کند مسیر عیب‌یابی را سریع‌تر پیدا کنید.

کد خطا
مفهوم
401
احراز هویت برای دسترسی به منبع موردنیاز است
403
سرور دسترسی به منبع را مجاز نمی‌داند
404
منبع موردنظر پیدا نشده است
500
خطایی در سمت سرور رخ داده است
503
سرویس موقتا در دسترس نیست

بنابراین اگر با خطای 403 Forbidden مواجه هستید، بهتر است قبل از تغییر تنظیمات مختلف، روی موارد مربوط به دسترسی، Permission، قوانین امنیتی و تنظیمات وب‌سرور تمرکز کنید.

چگونه خطای 403 را در هاست لینوکس برطرف کنیم؟

برای رفع خطای 403 بهتر است از بررسی‌های ساده شروع کنید و سپس سراغ تنظیمات فنی‌تر بروید.

آدرس URL را بررسی کنید

ابتدا مطمئن شوید URL را درست وارد کرده‌اید. اگر 403 فقط هنگام باز کردن یک صفحه یا فایل خاص نمایش داده می‌شود، آدرس دقیق همان منبع را بررسی کنید.

گاهی مشکل فقط به یک مسیر یا فایل خاص محدود است و نیازی به تغییر تنظیمات کل سایت وجود ندارد.

کش مرورگر و سایت را پاک کنید

اگر قوانین دسترسی اخیراً تغییر کرده‌اند، کش مرورگر یا سیستم‌های کش سایت ممکن است باعث شوند همچنان پاسخ قبلی را مشاهده کنید.

کش مرورگر را پاک کنید و صفحه را دوباره باز کنید. اگر از سیستم کش در سایت استفاده می‌کنید، کش آن را نیز پاک کنید.

Permission فایل‌ها و پوشه‌ها را بررسی کنید

اگر مشکل از دسترسی فایل‌ها باشد، Permission یکی از اولین مواردی است که باید بررسی شود.

با دستور زیر می‌توانید Permission و مالکیت فایل‌ها و پوشه‌های مسیر فعلی را مشاهده کنید:

				
					ls -la
				
			

اگر Permission فایل یا پوشه‌ای به‌صورت غیرعادی تغییر کرده باشد، باید با توجه به ساختار سرور اصلاح شود.

از تغییر گروهی Permissionها بدون اطلاع از ساختار سایت خودداری کنید؛ زیرا تنظیم نادرست مجوزها می‌تواند باعث مشکلات امنیتی یا اختلال در عملکرد سایت شود.

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

اگر فایل‌ها یا پوشه‌ها بعد از انتقال سایت یا اجرای دستورات مدیریتی دچار مشکل شده‌اند، Owner و Group را بررسی کنید.

استفاده نادرست از دستورهای chown و chmod می‌تواند مشکل را بیشتر کند. بنابراین اگر مطمئن نیستید کاربر و گروه صحیح برای فایل‌های سایت چیست، بهتر است قبل از تغییر مالکیت با پشتیبانی هاست یا مدیر سرور هماهنگ کنید.

فایل .htaccess را بررسی کنید

اگر سایت روی Apache یا LiteSpeed اجرا می‌شود، .htaccess را بررسی کنید.

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

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

افزونه‌های امنیتی وردپرس را بررسی کنید

اگر خطای 403 در وردپرس رخ داده است، افزونه‌های امنیتی یکی از موارد مهم برای بررسی هستند.

اگر بعد از نصب یا تغییر تنظیمات یک افزونه امنیتی این مشکل ایجاد شده، می‌توان آن افزونه را به‌صورت موقت غیرفعال کرد و دوباره دسترسی را آزمایش کرد.

اگر خطا برطرف شد، باید تنظیمات همان افزونه بررسی شود تا مشخص شود کدام قانون باعث مسدود شدن درخواست شده است.

IP و فایروال را بررسی کنید

اگر فقط یک IP خاص با 403 مواجه می‌شود، احتمال مسدود شدن IP وجود دارد.

در این شرایط باید قوانین فایروال، سیستم‌های امنیتی و محدودیت‌های اعمال‌شده روی سرور بررسی شوند.

اگر به تنظیمات فایروال دسترسی ندارید، بهتر است از مدیر سرور یا پشتیبانی سرویس میزبانی بخواهید وضعیت IP را بررسی کند.

تنظیمات وب‌سرور را بررسی کنید

اگر Permission، مالکیت و .htaccess مشکلی ندارند اما همچنان خطای 403 Forbidden نمایش داده می‌شود، تنظیمات وب‌سرور باید بررسی شوند.

این مورد مخصوصاً زمانی اهمیت دارد که خطا بعد از تغییر تنظیمات سرور، مهاجرت سایت یا تغییر وب‌سرور ایجاد شده باشد.

فایل Index را بررسی کنید

بررسی کنید فایل اصلی سایت مانند index.php یا index.html در مسیر موردنظر وجود داشته باشد.

اگر کاربر مستقیماً یک پوشه را باز می‌کند و فایل Index وجود ندارد، تنظیمات Directory Listing نیز می‌تواند در نمایش 403 نقش داشته باشد.

لاگ‌های سرور را بررسی کنید

وقتی علت خطای 403 مشخص نیست، لاگ‌ها یکی از بهترین منابع برای عیب‌یابی هستند.

لاگ وب‌سرور ممکن است مشخص کند که درخواست به دلیل Permission، قوانین دسترسی، IP، فایروال یا یک تنظیم امنیتی رد شده است.

در هاست‌های اشتراکی معمولاً دسترسی به تمام لاگ‌های سطح سرور وجود ندارد. در این شرایط می‌توانید از پشتیبانی هاست بخواهید لاگ مربوط به زمان وقوع خطا را بررسی کند.

رفع خطای 403 در وردپرس

اگر سایت شما با وردپرس ساخته شده است، روش‌های بررسی خطای 403 Forbidden تفاوت زیادی با سایت‌های دیگر ندارد؛ اما افزونه‌ها و ساختار وردپرس چند مورد اضافی را به فرآیند عیب‌یابی اضافه می‌کنند.

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

اگر خطا بعد از نصب یک افزونه یا تغییر تنظیمات امنیتی ایجاد شده باشد، احتمال دارد همان تغییر باعث مسدود شدن درخواست شده باشد.

همچنین اگر فقط فایل‌های خاصی مانند تصاویر، فایل‌های CSS یا JavaScript با 403 مواجه می‌شوند، بهتر است Permission و مسیر دسترسی همان فایل‌ها بررسی شود.

اگر خطای 403 فقط برای یک صفحه نمایش داده شود چه کنیم؟

اگر فقط یک URL خاص با خطای 403 Forbidden مواجه است و سایر صفحات بدون مشکل باز می‌شوند، احتمال دارد مشکل به همان مسیر مربوط باشد.

در این حالت ابتدا URL و وجود فایل یا صفحه موردنظر را بررسی کنید. سپس Permission و مالکیت فایل‌ها، قوانین .htaccess و تنظیمات امنیتی مرتبط با آن مسیر را بررسی کنید.

در وردپرس نیز ممکن است یک افزونه امنیتی یا قانون خاص، دسترسی به همان URL را محدود کرده باشد.

بنابراین در این حالت بهتر است بدون تغییر تنظیمات کلی سایت، ابتدا همان صفحه یا مسیر مشکل‌دار را بررسی کنید.

بدون دیدگاه

دیدگاهتان را بنویسید

هاستvpsسرور اختصاصی