قاعدة HTTP
هناك 4 أنواع من القواعد على مستوى HTTP. تتطلب USER-AGENT و URL-REGEX ترويسة طلب HTTP، لذا فهي لا تطابق إلا طلبات HTTP (أو طلبات HTTPS مع فك تشفير MitM). أما PROTOCOL و SCRIPT فيتم تقييمهما لأي اتصال.
USER-AGENT
USER-AGENT,Instagram*,DIRECT
تطابق القاعدة إذا تطابق user agent للطلب. العلامات النجمية * و ? مدعومة.
URL-REGEX
URL-REGEX,^http://google\.com,DIRECT
تطابق القاعدة إذا تطابق الرابط مع التعبير النمطي.
PROTOCOL
PROTOCOL,TLS,Proxy
تطابق القاعدة إذا تطابق البروتوكول المكتشف للاتصال. استخدم مع sniffing-enabled للحصول على أفضل النتائج. يُقبل NETWORK كاسم بديل لـ PROTOCOL.
قيم البروتوكول المقبولة: HTTP, HTTPS, TLS, TCP, UDP, QUIC, STUN, DNS, DOH, DOQ.
ملاحظة: لا ينتج استكشاف البروتوكول حالياً سوى
HTTPوTLS(أي اتصال TLS، بما في ذلك HTTPS) وQUIC(الوارد عبر TUN). القيم المقبولة الأخرى محجوزة — لا يوجد كاشف ينتجها بعد، لذا لن تطابق القواعد التي تستخدمها. على وجه الخصوص، استخدمPROTOCOL,TLSبدلاً منPROTOCOL,HTTPSلمطابقة حركة HTTPS.
SCRIPT
SCRIPT,MyRuleScript,DIRECT
تقييم القاعدة لسكريبت JavaScript لمنطق مطابقة مخصص. يجب أن يتطابق اسم السكريبت مع سكريبت معرف في القسم [Script] بـ type=rule.
[Rule]
SCRIPT,CheckInternal,PROXY
[Script]
CheckInternal = type=rule, script-path=internal-check.js
يستقبل سكريبت القاعدة $request ويجب أن يستدعي $done({matched: true}) أو $done({matched: false}). لاحظ أن $request.dnsResult يتوفر فقط عندما تكون الجلسة قد حُلّت بالفعل (على سبيل المثال، الطلبات الموجهة مباشرة إلى عنوان IP، أو مرحلة المطابقة الثانية بعد تحليل DNS).