HTTP 403 "ممنوع": الأسباب والمنع والإصلاح

نشرت: 2023-09-01
جدول المحتويات
  • ما هو HTTP 403؟
  • أسباب شائعة
  • تشخيص
  • كيف تمنع
  • كيف تصلحها
  • الأخطاء ذات الصلة

HTTP 403، يعني "ممنوع" ويشير إلى أن طلب العميل مفهوم من قبل الخادم، لكنه يرفض تنفيذه.

تهدف هذه المقالة إلى تسليط الضوء على جوهر HTTP 403، وكشف أسبابه الشائعة، وتوجيه تشخيصه، وتقديم تقنيات الوقاية والحل.

سنقوم أيضًا بتسليط الضوء على الأخطاء ذات الصلة لتوفير فهم شامل.

ما هو HTTP 403؟

403-ممنوع-خطأ

HTTP 403 هو رمز الحالة الذي يشير إلى "ممنوع". عند مواجهته، يخبر العميل أن الخادم يفهم الطلب ولكنه يرفض إكماله.

على عكس الحالة 401 "غير مصرح به" ، والتي تتعلق بمشكلات مصادقة المستخدم، يشير الخطأ 403 إلى أن المصادقة ربما كانت ناجحة، ولكن المستخدم الذي تمت مصادقته لا يزال لا يملك الأذونات اللازمة للوصول إلى المورد المطلوب.

أسباب شائعة

يمكن أن تنشأ أخطاء HTTP 403 نتيجة لمجموعة متنوعة من الظروف:

  1. أذونات غير كافية : قد لا يكون لدى المستخدم الأذونات اللازمة للوصول إلى مورد معين على الخادم.
  2. القيود الجغرافية : قد يقتصر بعض محتوى الويب على مستخدمين من مناطق أو بلدان معينة.
  3. حظر IP : قد تقوم الخوادم بحظر عناوين IP معينة بسبب مخاوف أمنية أو أنشطة مشبوهة سابقة.
  4. قواعد .htaccess الصارمة : يمكن أن تؤدي القواعد غير الصحيحة أو المقيدة بشكل مفرط في ملف .htaccess على خوادم Apache إلى أخطاء 403.
  5. بروتوكولات أمان الخادم : قد تحتوي بعض الخوادم على بروتوكولات أمان تمنع الطلبات من وكلاء مستخدمين أو متصفحات معينة.

تشخيص

لتحديد السبب الجذري لخطأ HTTP 403، اتبع الخطوات التالية:

  1. عنوان URL للمراجعة : تأكد من الوصول إلى عنوان URL الصحيح وعدم وجود أخطاء إملائية.
  2. فحص سجلات الخادم : يمكن أن توفر سجلات الخادم رؤى حول سبب رفض طلب معين.
  3. التحقق من ملف .htaccess : بالنسبة لمواقع الويب التي تعمل على Apache، يمكن أن تؤدي مراجعة ملف .htaccess إلى تحديد أي قواعد مقيدة بشكل مفرط.

كيف تمنع

يتضمن تجنب أخطاء HTTP 403 خطوات استباقية لضمان التفاعلات السلسة بين الخادم والعميل:

  1. مراجعة الأذونات بانتظام : قم بفحص الأذونات وضبطها بشكل دوري للتأكد من قدرة المستخدمين على الوصول إلى الموارد الضرورية.
  2. قم بتحديث ملف htaccess بعناية : عند تعديل ملف htaccess، افعل ذلك بحذر واحتفظ دائمًا بالنسخ الاحتياطية.
  3. مراقبة أمان الخادم : ابق على اطلاع دائم ببروتوكولات أمان الخادم لمنع الانسداد غير المقصود.

كيف تصلحها

تعتمد معالجة الخطأ 403 على السبب الأساسي له:

1. ضبط الأذونات

تأكد من منح الأذونات الصحيحة للمستخدمين أو الأدلة التي تتطلب الوصول. (اقرأ أكثر)

2. إصلاح مشكلات .htaccess

  1. النسخ الاحتياطي لملف .htaccess الخاص بك : قم دائمًا بعمل نسخة احتياطية من ملف .htaccess قبل إجراء أي تغييرات.
  2. التحقق من توجيهات الرفض : ابحث عن أي توجيهات Deny في ملف .htaccess الخاص بك. إذا كانت موجودة، فمن المحتمل أنها تسبب الخطأ 403. على سبيل المثال: Order allow,deny Deny from all لحل هذه المشكلة، إما إزالة التوجيه أو تعديله للسماح بحركة المرور المطلوبة.
  3. الحماية بكلمة مرور : إذا كانت بعض الأدلة محمية بكلمة مرور باستخدام AuthType و AuthName و AuthUserFile و Require ، فتأكد من أن لديك بيانات الاعتماد الصحيحة للوصول إليها. إذا كنت لا تريد الحماية بكلمة مرور، فيمكنك التعليق على هذه التوجيهات أو إزالتها.
  4. أذونات الملف : على الرغم من أن هذا ليس حلاً .htaccess بشكل صارم، تأكد من أن الملفات والأدلة لديك لديها الأذونات الصحيحة. بالنسبة للعديد من الخوادم، يكون إعداد الأذونات النموذجي هو:
    • المجلدات: 755
    • الملفات: 644
    يمكن أن تؤدي الأذونات غير الصحيحة، خاصة للأدلة، إلى أخطاء 403.
  5. قوائم الدليل : إذا كنت تحاول الوصول إلى دليل لا يحتوي على ملف فهرس (مثل index.html أو index.php ) وكانت قوائم الدليل معطلة، فقد تحصل على خطأ 403. يمكنك إما:
    • إضافة ملف فهرس إلى الدليل.
    • تمكين قوائم الدليل باستخدام: Options +Indexes
  6. قواعد Mod_Rewrite : إذا كنت تستخدم قواعد mod_rewrite، فتأكد من كتابتها بشكل صحيح. يمكن أن تؤدي القواعد غير الصحيحة أحيانًا إلى أخطاء 403. قم بالتعليق على قواعد محددة لمعرفة ما إذا كانت هي السبب.
  7. التحقق من قيود الملفات : ابحث عن القواعد التي تقيد الوصول بناءً على اسم الملف، مثل: <Files "secretfile.php"> Order allow,deny Deny from all </Files> اضبط هذه القواعد أو أزلها حسب الضرورة.
  8. تأكد من بناء جملة .htaccess : يمكن أن يتسبب ملف .htaccess المكتوب بشكل غير صحيح أو الملف الذي يحتوي على توجيهات غير صالحة في حدوث خطأ 403. تأكد من صحة كافة التوجيهات وبناء الجملة.

بعد إجراء تغييرات على ملف .htaccess ، تذكر مسح ذاكرة التخزين المؤقت للمتصفح لديك أو الاختبار باستخدام متصفح مختلف للتأكد من أنك ترى النتيجة المحدثة. إذا لم ينجح أي من الحلول المذكورة أعلاه في حل المشكلة، ففكر في استعادة نسخة احتياطية من ملف .htaccess من الوقت الذي لم تكن تواجه فيه الخطأ 403.

3. إدراج عناوين IP في القائمة البيضاء

إذا كان حظر IP هو السبب، ففكر في إدراج عنوان IP المعني في القائمة البيضاء.

القائمة البيضاء مع .htaccess:

  1. تحديد موقع قواعد حظر IP الموجودة : ابحث عن أي قواعد موجودة في ملف .htaccess الخاص بك والتي قد تحظر عناوين IP. قد تبدو بالشكل التالي: Order Deny,Allow Deny from all Allow from 123.123.123.123 في هذا المثال، يُسمح فقط بعنوان IP 123.123.123.123 ، ويتم رفض كافة عناوين IP الأخرى.
  2. إدراج عنوان IP في القائمة البيضاء : إذا كنت تريد إضافة عنوان IP محدد إلى القائمة البيضاء، فيمكنك إضافته باستخدام توجيه Allow from : Allow from YOUR.IP.ADDRESS.HERE استبدل YOUR.IP.ADDRESS.HERE بعنوان IP الذي تريد إدراجه في القائمة البيضاء .
  3. إضافة عناوين IP متعددة إلى القائمة البيضاء : إذا كان لديك عناوين IP متعددة لإضافتها إلى القائمة البيضاء، فيمكنك إضافة Allow from التوجيهات المتعددة: Allow from IP.ADDRESS.1 Allow from IP.ADDRESS.2
  4. قم بإدراج نطاق IP في القائمة البيضاء : إذا كان لديك نطاق من عناوين IP، فيمكنك استخدام تدوين CIDR أو أحرف البدل: #Using CIDR notation Allow from 123.123.123.0/24 # Using wildcards Allow from 123.123.123.* كلا المثالين أعلاه قم بإدراج جميع عناوين IP في القائمة البيضاء من 123.123.123.0 إلى 123.123.123.255 .
  5. الحفظ والاختبار : بعد إضافة تعليمات Allow from اللازمة، احفظ ملف .htaccess ثم حاول الوصول إلى موقع الويب الخاص بك من عنوان IP المحظور مسبقًا. وينبغي أن يكون الآن في متناول الجميع.
  6. مسح ذاكرة التخزين المؤقت للمتصفح : قم دائمًا بمسح ذاكرة التخزين المؤقت للمتصفح أو استخدم نافذة التصفح المتخفي/الخاص عند الاختبار للتأكد من أنك ترى أحدث التغييرات.

باستخدام iptables :

أنا. النسخ الاحتياطي لقواعد iptables الحالية : قبل إجراء أي تغييرات، من الجيد عمل نسخة احتياطية لقواعد iptables الحالية.

 sudo iptables-save > /path/to/backupfile.txt

ثانيا. إدراج عنوان IP في القائمة البيضاء : للسماح بجميع حركة المرور من عنوان IP محدد:

 sudo iptables -A INPUT -s YOUR.IP.ADDRESS.HERE -j ACCEPT

استبدل YOUR.IP.ADDRESS.HERE بعنوان IP الذي تريد إدراجه في القائمة البيضاء.

ثالثا. احفظ التغييرات : اعتمادًا على التوزيع الخاص بك، قد تستخدم:

 sudo service iptables save

أو:

 sudo iptables-save > /etc/sysconfig/iptables

باستخدام ufw :

أنا. تحقق من تثبيت UFW : إذا لم يكن الأمر كذلك، فيمكنك تثبيته باستخدام مدير الحزم الخاص بالتوزيع، على سبيل المثال:

 sudo apt install ufw # For Ubuntu/Debian sudo yum install ufw # For CentOS (might not be in the default repositories)

ثانيا. تمكين UFW : إذا لم يكن ممكّنًا بالفعل، فيمكنك تشغيل UFW باستخدام:

 sudo ufw enable

ثالثا. إدراج عنوان IP في القائمة البيضاء : للسماح بجميع حركة المرور من عنوان IP محدد:

 sudo ufw allow from YOUR.IP.ADDRESS.HERE

استبدل YOUR.IP.ADDRESS.HERE بعنوان IP الذي تريد إدراجه في القائمة البيضاء.

رابعا. التحقق من القواعد : يمكنك التحقق من قواعد UFW باستخدام:

 sudo ufw status

4. اطلب دعم موفر الاستضافة : في بعض الأحيان، يمكن أن يساعد التواصل مع موفر الاستضافة في تحديد المشكلات الخاصة بالخادم وتصحيحها.

الأخطاء ذات الصلة

لوضع HTTP 403 في سياقه بشكل أكبر، خذ بعين الاعتبار رموز حالة HTTP ذات الصلة:

  1. HTTP 401 (غير مصرح به) : يتطلب الطلب مصادقة المستخدم.
  2. HTTP 402 (الدفع مطلوب) : محجوز للاستخدام المستقبلي، يقترح أن الدفع مطلوب.
  3. HTTP 404 (لم يتم العثور عليه) : المورد المطلوب غير متوفر على الخادم.

في الختام، يعد فهم تعقيدات رمز الحالة "ممنوع" HTTP 403 أمرًا حيويًا لضمان تفاعلات الويب المثالية. من خلال البقاء على اطلاع واستباقية، يمكن للمطورين والمستخدمين التغلب على المخاطر المحتملة والحفاظ على تجارب الويب السلسة.