العودة إلى المدونة

فيدلر لتصحيح أخطاء حركة مرور HTTP لتطبيقات ويندوز وUWP: دليل كامل لإعداد الوكيل

فيدلر هو أداة قوية لاعتراض وتحليل حركة مرور HTTP/HTTPS في تطبيقات ويندوز وUWP. نتناول إعدادها، واعتراض الطلبات، والتكامل مع البروكسي.

📅٢٣ صفر ١٤٤٨ هـ
```html

إذا كنت تقوم بتطوير أو اختبار تطبيقات Windows وترغب في رؤية الطلبات HTTP التي ترسلها — سيكون Fiddler هو أداتك الرئيسية. إنه يعترض كل الحركة، ويسمح لك بتحليلها، وتعديلها في الوقت الحقيقي وإعادة إنتاجها. هذا مفيد بشكل خاص عند العمل مع تطبيقات UWP، التي تتجاوز الوكيل النظامي بشكل افتراضي.

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

ما هو Fiddler ولماذا هو مطلوب

Fiddler هو مصحح أخطاء HTTP بروكسي، تم تطويره بواسطة شركة Telerik (الآن Progress). يعمل كخادم بروكسي محلي: جميع طلبات HTTP وHTTPS لجهاز الكمبيوتر الخاص بك تمر عبره، ويمكنك رؤية كل منها في الوقت الحقيقي. الأداة مجانية، وتوجد في نسختين — Fiddler Classic (لـ Windows فقط) وFiddler Everywhere (عبر الأنظمة الأساسية).

ما الفرق بين Fiddler وأدوات المطور في المتصفح؟ تظهر أدوات مطور المتصفح فقط حركة مرور المتصفح نفسه. بينما يعترض Fiddler الطلبات من أي تطبيقات على جهاز الكمبيوتر الخاص بك: البرامج المكتبية، خدمات النظام، العمليات الخلفية لـ Windows، التطبيقات المحمولة عبر Wi-Fi و— ما هو مهم بشكل خاص — تطبيقات UWP من Microsoft Store.

المهام الشائعة التي يحلها Fiddler:

  • تحليل طلبات API للتطبيقات المكتبية — ما الذي ترسله بالضبط البرنامج، ما هي الرؤوس، ما هي البيانات
  • تصحيح الأخطاء في الكود الخاص بك — ترى الطلبات الحقيقية لتطبيقك، وليس ما كنت تعتقد أنك سترسله
  • تعديل الطلبات والاستجابات في الوقت الحقيقي — استبدال البيانات لاختبار حالات الحافة
  • مراقبة النشاط الخلفي — أي الخوادم "تتصل" بها البرنامج دون علمك
  • اختبار عبر الوكيل — التحقق من سلوك التطبيق عند العمل عبر خادم بروكسي خارجي
  • إعادة إنتاج الطلبات — إعادة إرسال الطلب المعترض مع معلمات معدلة

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

التثبيت والإعداد الأولي

يستغرق تثبيت Fiddler Classic حوالي دقيقتين. قم بتنزيل المثبت من الموقع الرسمي telerik.com/fiddler وقم بتشغيله. بعد التثبيت، يقوم Fiddler تلقائيًا بتسجيل نفسه كوكيل نظام Windows على المنفذ 127.0.0.1:8888.

فور تشغيله، سترى نافذة رئيسية تحتوي على ثلاث مناطق:

  • اللوحة اليسرى (Sessions) — قائمة بجميع الطلبات المعترضة في الوقت الحقيقي
  • اللوحة اليمنى العليا — تفاصيل الطلب المحدد (الرؤوس، الجسم، المعلمات)
  • اللوحة اليمنى السفلية — استجابة الخادم

أول شيء يجب عليك القيام به هو إعداد الفلترة، وإلا ستظهر جميع حركة مرور النظام في Windows (التحديثات، القياس عن بعد، OneDrive، إلخ)، وسيكون من الصعب العثور على الطلبات المطلوبة. انتقل إلى علامة التبويب Filters في الجزء الأيمن وقم بتمكين Use Filters. في حقل Show only the following Hosts، حدد النطاقات التي تهمك.

اختصارات مفيدة في Fiddler Classic:

  • F12 — تشغيل/إيقاف اعتراض الحركة
  • Ctrl+X — مسح قائمة الجلسات
  • Ctrl+F — البحث في الجلسات
  • R — إعادة تنفيذ الطلب المحدد
  • Shift+Delete — حذف الجلسات المحددة

نوصي أيضًا بإعداد الحفظ التلقائي للجلسات على الفور: File → Capture Traffic وFile → Save → All Sessions. سيسمح لك ذلك بالعودة إلى الحركة المسجلة لاحقًا وتحليلها دون اتصال.

اعتراض حركة مرور HTTPS: إعداد الشهادة

بشكل افتراضي، يعترض Fiddler حركة مرور HTTP فقط. للعمل مع HTTPS (وهو أكثر من 95% من الحركة الحديثة)، يجب إعداد فك تشفير SSL. يعمل Fiddler كـ Man-in-the-Middle: يقوم بإنشاء شهادته الجذرية الخاصة ويوقع بها جميع اتصالات HTTPS.

إعداد خطوة بخطوة لاعتراض HTTPS:

  1. افتح Tools → Options → HTTPS
  2. ضع علامة على Capture HTTPS CONNECTs
  3. ضع علامة على Decrypt HTTPS traffic
  4. اختر من القائمة المنسدلة ...from all processes
  5. اضغط على زر Actions → Trust Root Certificate
  6. أكد تثبيت الشهادة في مخزن نظام Windows
  7. أعد تشغيل Fiddler

بعد ذلك، في عمود Protocol سترى HTTPS بدلاً من CONNECT، وستتمكن من عرض المحتوى المفكك للطلبات والاستجابات.

⚠️ مهم: أمان الشهادة

يتم تثبيت شهادة Fiddler فقط في مخزن المستخدم الحالي في Windows. لا تقم بنقل ملف الشهادة إلى أطراف ثالثة — سيتيح لهم ذلك اعتراض حركة مرور HTTPS الخاصة بك. بعد الانتهاء من التصحيح، يمكنك حذف الشهادة عبر Tools → Options → HTTPS → Actions → Remove Interception Certificates.

تستخدم بعض التطبيقات تثبيت الشهادة — تتحقق من شهادة الخادم المحددة وترفض العمل عبر Fiddler. في هذه الحالة، سترى خطأ في الاتصال في التطبيق. تجاوز التثبيت هو موضوع منفصل، يتجاوز نطاق هذه المقالة.

كيفية اعتراض حركة مرور تطبيقات UWP

UWP (منصة Windows العالمية) — هي التطبيقات من Microsoft Store: البريد، الخرائط، الأفلام والتلفزيون، Spotify، Netflix والعديد من الآخرين. تتميز بأنها تعمل في حاوية معزولة (App Container) لأسباب أمنية ولا تستخدم الوكيل النظامي. لهذا السبب، لا تعترض إعدادات Fiddler العادية حركتها.

لحل هذه المشكلة، يوفر Fiddler أداة خاصة — AppContainer Loopback Exemption Utility. تضيف هذه الأداة تطبيق UWP إلى قائمة الاستثناءات، مما يسمح له بالوصول إلى الوكيل المحلي Fiddler.

الطريقة 1 — عبر واجهة Fiddler:

  1. في القائمة، اختر WinConfig (زر في شريط الأدوات أو Tools → Win8 Loopback Exemptions)
  2. ستظهر قائمة بجميع تطبيقات UWP المثبتة
  3. ابحث عن التطبيق المطلوب وضع علامة بجانبه
  4. اضغط على Save Changes
  5. أعد تشغيل تطبيق UWP

الطريقة 2 — عبر سطر الأوامر (للتشغيل التلقائي):

CheckNetIsolation LoopbackExempt -a -n="Microsoft.WindowsMaps_8wekyb3d8bbwe"

استبدل Microsoft.WindowsMaps_8wekyb3d8bbwe باسم عائلة الحزمة للتطبيق المطلوب. يمكنك العثور عليه في PowerShell باستخدام الأمر:

Get-AppxPackage | Select-Object Name, PackageFamilyName | Sort-Object Name

بعد إضافة الاستثناء، سيبدأ تطبيق UWP في إرسال الحركة عبر Fiddler. سترى طلباته في قائمة الجلسات — عادةً ما يمكن التعرف عليها بسهولة من خلال User-Agent أو من خلال المضيف الوجهة.

💡 نصيحة: UWP وHTTPS

لاعتراض حركة مرور HTTPS لتطبيقات UWP، ليس كافيًا إضافة استثناء loopback. يجب أيضًا تثبيت شهادة Fiddler في مخزن Trusted Root Certification Authorities لـ Local Machine (ليس فقط للمستخدم الحالي). قم بذلك عبر certmgr.msc أو عبر سياسات المجموعة.

الفلاتر، نقاط التوقف وتعديل الطلبات

ثلاث وظائف قوية في Fiddler للتصحيح — هي فلترة الجلسات، نقاط التوقف وAutoResponder. دعونا نناقش كل منها.

فلترة الجلسات

علامة التبويب Filters تسمح بعرض الطلبات المطلوبة فقط. الخيارات الرئيسية:

  • Show only the following Hosts — فلتر حسب النطاق (على سبيل المثال، api.example.com)
  • Show only if URL contains — فلتر حسب جزء من URL
  • Show only if response Content-Type — فقط JSON، XML، صور، إلخ.
  • Hide if URL contains — استبعاد الطلبات الضوضائية (على سبيل المثال، telemetry, analytics)

يمكنك أيضًا استخدام سطر QuickExec في أسفل النافذة للأوامر السريعة. على سبيل المثال، select status 404 سيبرز جميع الطلبات التي تحتوي على خطأ 404، بينما bold api سيبرز بالخط العريض جميع الجلسات التي تحتوي على "api" في URL.

نقاط التوقف (Breakpoints)

تسمح نقاط التوقف بإيقاف الطلب أو الاستجابة قبل إرسالها/استلامها وتعديل المحتوى يدويًا. هذا هو ما يعادل نقطة التوقف في مصحح الكود، ولكن لـ HTTP.

  • Rules → Automatic Breakpoints → Before Requests — يوقف كل طلب قبل الإرسال
  • Rules → Automatic Breakpoints → After Responses — يوقف كل استجابة قبل إرسالها إلى التطبيق
  • انقر بزر الفأرة الأيمن على الجلسة → Breakpoint → Break on Request — نقطة توقف محددة على URL معين

عندما يتوقف الطلب، يمكنك تعديل أي رأس، جسم الطلب، URL والضغط على Run to Completion للمتابعة. هذا مفيد بشكل خاص لاختبار سلوك التطبيق مع بيانات معدلة.

AutoResponder

AutoResponder — أداة لاستبدال استجابات الخادم. تقوم بإنشاء قاعدة: "إذا تطابق URL مع النمط — أعد هذا الملف/الاستجابة". التطبيقات:

  • اختبار التطبيق باستخدام واجهات برمجة التطبيقات الوهمية دون الحاجة إلى خلفية حقيقية
  • محاكاة أخطاء الخادم (500، 503، مهلات)
  • استبدال الموارد — تحميل نسخة محلية من JS/CSS بدلاً من النسخة من الخادم
  • تسريع التطوير — تخزين الطلبات البطيئة إلى واجهات برمجة التطبيقات الخارجية

توصيل وكيل خارجي عبر Fiddler

واحدة من الميزات المهمة في Fiddler هي العمل في وضع "بروكسي عبر بروكسي" (upstream proxy). يعترض Fiddler الحركة محليًا، ثم يوجهها عبر خادم بروكسي خارجي. هذا يسمح لك بتصحيح الطلبات وتغيير عنوان IP أو الموقع الجغرافي في نفس الوقت.

متى تحتاج إلى ذلك:

  • اختبار سلوك التطبيق عند العمل عبر بروكسي مؤسسي
  • التحقق من المحتوى المعتمد على الموقع الجغرافي — كيف يعمل التطبيق من دولة أخرى
  • تصحيح تطبيق يستخدم بروكسي بنفسه
  • اختبار API مع قيود IP (قائمة بيضاء حسب IP)

إعداد upstream proxy في Fiddler Classic:

  1. افتح Tools → Options → Gateway
  2. اختر Manual Proxy Configuration
  3. في حقل Proxy، أدخل عنوان البروكسي بتنسيق host:port
  4. إذا كان البروكسي يتطلب مصادقة — أدخل اسم المستخدم وكلمة المرور
  5. اضغط على OK وأعد تشغيل التقاط الحركة

يدعم Fiddler بروكسي HTTP وHTTPS وSOCKS5 كـ upstream. لتنسيق SOCKS5، يكون تنسيق التسجيل مختلفًا قليلاً:

socks=proxy.example.com:1080

لمهام اختبار سلوك التطبيقات المعتمدة على الموقع الجغرافي، تعتبر الوكلاء السكنيين خيارًا جيدًا — حيث يستخدمون عناوين IP حقيقية لمستخدمين منزليين من الدولة المطلوبة، ويتلقى التطبيق استجابات كما لو كان مستخدمًا حقيقيًا من هذه المنطقة. هذا مهم إذا كان API يعيد محتوى مختلف حسب الموقع الجغرافي.

إذا كنت بحاجة إلى سرعة عالية لتحميل كميات كبيرة من البيانات أثناء التصحيح، فإن وكلاء مراكز البيانات هم الخيار المناسب — حيث يوفرون اتصالًا مستقرًا وزمن استجابة منخفض، مما يسهل العمل مع واجهات برمجة التطبيقات الثقيلة.

💡 FiddlerScript لاختيار البروكسي ديناميكيًا

من خلال FiddlerScript، يمكنك إعداد بروكسيات upstream مختلفة لمضيفين مختلفين. على سبيل المثال، توجيه الطلبات إلى api.us-service.com عبر بروكسي أمريكي، بينما البقية مباشرة:

static function OnBeforeRequest(oSession: Session) {
  if (oSession.HostnameIs("api.us-service.com")) {
    oSession["x-OverrideGateway"] = "us-proxy.example.com:8080";
  }
}

سيناريوهات عملية: التحليل، اختبار API، تجاوز الجغرافيا

دعونا نناقش مهام محددة يمكن حلها بسهولة باستخدام Fiddler.

السيناريو 1: عكس هندسة API لتطبيق محمول

تريد أتمتة الإجراءات في التطبيق، ولكن ليس لديه واجهة برمجة تطبيقات عامة. الحل: قم بتشغيل التطبيق على محاكي Android أو عبر عميل Windows، وقم بإعداده لاستخدام Fiddler كوكيل، وسجل جميع الطلبات أثناء تنفيذ الإجراءات المطلوبة.

بعد التسجيل، ستحصل على صورة كاملة: نقاط النهاية، تنسيقات الطلبات، رؤوس المصادقة، الرموز. يمكن استخدام هذه البيانات لكتابة عميل خاص بك أو لأتمتة عبر السكريبتات.

السيناريو 2: تصحيح محلل سوق

عند تطوير محلل لـ Wildberries أو Ozon أو أسواق أخرى، غالبًا ما يكون من غير الواضح لماذا يتم حظر الطلبات. يسمح لك Fiddler بمقارنة طلبات المتصفح (التي تمر) مع طلبات المحلل (التي يتم حظرها) والعثور على الاختلافات في الرؤوس، ترتيبها، قيم الكوكيز أو بصمة TLS.

اكتشاف شائع: يرسل المحلل الرؤوس بترتيب مختلف، أو يفتقر إلى Accept-Language، أو User-Agent يحتوي على إصدار Python. من خلال تصحيح هذه التفاصيل في كود المحلل، تقلل من احتمال الحظر.

السيناريو 3: اختبار المحتوى المعتمد على الموقع الجغرافي

إذا كان تطبيقك يعرض محتوى مختلفًا للمستخدمين من دول مختلفة، يجب اختبار ذلك باستخدام عناوين IP حقيقية من تلك الدول. قم بإعداد Fiddler مع بروكسي upstream من المنطقة المطلوبة، ثم قم بتشغيل التطبيق — وسترى بالضبط ما يراه المستخدم من تلك الدولة، بالإضافة إلى سجل كامل لجميع الطلبات.

السيناريو 4: مراقبة النشاط الخلفي للتطبيقات

هل تريد معرفة إلى أين "تتصل" البرنامج المثبت؟ قم بتشغيل Fiddler، ثم قم بتشغيل البرنامج، وانتظر 5-10 دقائق. ستظهر جميع المضيفين الذين اتصلت بهم البرنامج في قائمة الجلسات. هذا مفيد لتدقيق أمان البرمجيات الخارجية، والتحقق من وجود قياس عن بعد أو اتصالات غير مرغوب فيها.

السيناريو 5: تصدير الطلبات لإعادة الإنتاج

يتيح لك Fiddler تصدير الطلبات المعترضة بتنسيق cURL، الذي يمكنك تشغيله مباشرة في الطرفية أو لصقه في Postman. انقر بزر الفأرة الأيمن على الجلسة → Copy → cURL Request. هذا مفيد لنقل الطلب إلى زميل أو لتوثيق API.

Fiddler Classic مقابل Fiddler Everywhere: ماذا تختار

تدعم Telerik نسختين من المنتج، والاختيار بينهما ليس دائمًا واضحًا. دعونا نناقش الاختلافات الرئيسية.

المعيار Fiddler Classic Fiddler Everywhere
الأنظمة الأساسية Windows فقط Windows، macOS، Linux
السعر مجاني اشتراك مدفوع (يوجد خطة مجانية)
دعم UWP نعم (عبر WinConfig) محدود
FiddlerScript نعم (JScript.NET) لا (تستخدم القواعد)
الواجهة قديمة، ولكنها وظيفية حديثة، مريحة
التعاون لا نعم (مجموعات سحابية)
قابلية التوسع إضافات .NET محدودة
اعتراض حركة مرور النظام كامل كامل

متى تختار Fiddler Classic: إذا كنت تعمل فقط على Windows، تحتاج إلى العمل مع تطبيقات UWP، تستخدم FiddlerScript للأتمتة، أو تهمك النسخة المجانية بالكامل بدون قيود.

متى تختار Fiddler Everywhere: إذا كنت تعمل على macOS أو Linux، تحتاج إلى واجهة حديثة، يهمك التعاون مع مجموعات الطلبات المشتركة، أو تريد التكامل مع خطوط أنابيب CI/CD.

كما يجب الإشارة إلى البدائل: Charles Proxy (مدفوع، شائع على macOS)، mitmproxy (مجاني، سطر الأوامر، مرن جدًا)، Wireshark (يعمل على مستوى الحزم، وليس HTTP). كل أداة لها نقاط قوتها، ولكن بالنسبة لمعظم مهام تصحيح أخطاء تطبيقات Windows، يبقى Fiddler Classic الخيار الأمثل.

المشكلات الشائعة وحلولها

عند العمل مع Fiddler، تظهر أحيانًا مشكلات نموذجية. إليك الأكثر شيوعًا وطرق حلها.

المشكلة: التطبيق لا يعمل عند تشغيل Fiddler

الأسباب: تثبيت الشهادة، بروكسي محدد في التطبيق، أو التطبيق لا يثق بشهادة Fiddler. الحلول:

  • قم بتثبيت شهادة Fiddler في مخزن Local Machine → Trusted Root
  • تحقق مما إذا كان التطبيق يستخدم تثبيت الشهادة
  • أضف المضيف إلى استثناءات SSL: Tools → Options → HTTPS → Skip Decryption for following hosts

المشكلة: بعد إغلاق Fiddler، الإنترنت لا يعمل

لم يتمكن Fiddler من إزالة البروكسي النظامي عند الإغلاق المفاجئ. الحل: افتح إعدادات Windows → الشبكة → البروكسي وأوقف البروكسي اليدوي. أو قم بتشغيل Fiddler مرة أخرى وأغلقه بشكل طبيعي.

المشكلة: تظهر فقط أنفاق CONNECT، ولكن لا محتوى HTTPS

لم يتم إعداد اعتراض HTTPS. عد إلى القسم الخاص بإعداد الشهادة وتأكد من أن علامة Decrypt HTTPS traffic مفعلة وأن الشهادة مثبتة في مخزن النظام.

المشكلة: حركة مرور تطبيق UWP لا تظهر في Fiddler

لم تتم إضافة استثناء loopback لهذا التطبيق. استخدم WinConfig (كما هو موضح في قسم UWP) وأعد تشغيل التطبيق بعد إضافة الاستثناء.

المشكلة: البروكسي العلوي لا يعمل (خطأ في الاتصال)

تحقق من: صحة عنوان البروكسي ورقم المنفذ، صحة اسم المستخدم/كلمة المرور، توفر خادم البروكسي (حاول الاتصال مباشرة بدون Fiddler). تأكد أيضًا من أن البروكسي يدعم البروتوكول المطلوب — ليس كل بروكسي HTTP يدعم نفق HTTPS.

الخاتمة

Fiddler هو أداة لا غنى عنها لكل من يعمل مع حركة مرور HTTP لتطبيقات Windows. يسمح لك برؤية جميع الطلبات في الوقت الحقيقي، وتعديلها في الوقت الحقيقي، واختبار سلوك التطبيقات في ظروف مختلفة وحل المهام التي لا يمكن تنفيذها باستخدام أدوات مطور المتصفح. القيمة الخاصة تأتي من دعم تطبيقات UWP عبر آلية استثناءات loopback — وهي فرصة فريدة لا تتوفر في معظم البدائل.

لمهام اختبار سلوك التطبيقات المعتمدة على الموقع الجغرافي أو التحقق من العمل عبر بروكسيات خارجية — قم بإعداد البروكسي العلوي في Fiddler. إذا كنت بحاجة إلى عناوين IP حقيقية من دول معينة للاختبار الصحيح، فانتبه إلى الوكلاء السكنيين — حيث يوفرون أقصى قدر من الواقعية الجغرافية وأقل خطر من الحظر من الخدمات التي يتم اختبارها.

ابدأ مع Fiddler Classic — فهو مجاني، موثق جيدًا ويغطي 90% من مهام التصحيح على Windows. مع زيادة الاحتياجات، يمكنك الانتقال إلى Fiddler Everywhere أو تكملة سير العمل بأدوات متخصصة مثل mitmproxy لأتمتة أكثر مرونة.

```