सीधे सामग्री पर जाएँ

HTTPQL और StreamQL ​

Ogma HTTP इतिहास, WebSocket ट्रैफ़िक, स्वचालन परिणाम और संबंधित दृश्य फ़िल्टर करने के लिए Caido-संगत क्वेरी भाषा के एक उपसमुच्चय का उपयोग करता है।

सिंटैक्स ​

क्वेरी में AND और OR से जुड़े क्लॉज़ होते हैं।

text
req.host:example.com AND resp.code:200

कोष्ठक अभिव्यक्तियों को समूह में रखते हैं:

text
(req.path.cont:"/api/" OR req.path.cont:"/graphql") AND resp.code.gte:400

टिप्पणियों का समर्थन है:

text
// API errors
req.path.cont:"/api/" AND resp.code.gte:500
text
/* focus on login */
req.path.cont:"login"

ऑपरेटर ​

ऑपरेटरअर्थ
:फ़ील्ड के प्रकार के अनुसार बराबरी या डिफ़ॉल्ट मिलान
.eq:बराबर
.ne:बराबर नहीं
.cont:शामिल है, अक्षरों के बड़े या छोटे होने का भेद किए बिना
.ncont:शामिल नहीं है, अक्षरों के बड़े या छोटे होने का भेद किए बिना
.cs.cont:शामिल है, अक्षरों के बड़े या छोटे होने का भेद करते हुए
.cs.ncont:शामिल नहीं है, अक्षरों के बड़े या छोटे होने का भेद करते हुए
.like:SQL-जैसा पैटर्न मिलान
.nlike:SQL-जैसे पैटर्न से मिलान नहीं
.regex:रेगुलर एक्सप्रेशन से मिलान
.nregex:रेगुलर एक्सप्रेशन से मिलान नहीं
.lt:इससे कम
.lte:इससे कम या बराबर
.gt:इससे अधिक
.gte:इससे अधिक या बराबर
.existsहेडर मौजूद है; req.header["Name"].value.exists या प्रतिक्रिया के लिए इसके समकक्ष का उपयोग करें

HTTP उदाहरण ​

API ट्रैफ़िक खोजें:

text
req.path.cont:"/api/"

सर्वर त्रुटियाँ खोजें:

text
resp.code.gte:500

बड़ी प्रतिक्रियाएँ खोजें:

text
resp.len.gt:100000

JSON प्रतिक्रियाएँ खोजें:

text
resp.header["content-type"].value.cont:"application/json"

कुकी वाले अनुरोध खोजें:

text
req.header["cookie"].value.exists

इंटरसेप्ट या मिलान और प्रतिस्थापन से बदला गया ट्रैफ़िक खोजें:

text
req.modified.eq:true

संभावित एडमिन पाथ खोजें:

text
req.path.cont:"/admin" OR req.path.cont:"/manage"

रीप्ले या स्वचालन ट्रैफ़िक खोजें:

text
source:replay OR source:automate

स्ट्रीम उदाहरण ​

StreamQL यही क्वेरी शैली WebSocket और स्ट्रीम दृश्यों पर लागू करता है।

टोकन फ़ील्ड वाले WebSocket संदेश खोजें:

text
ws.raw.cont:"token"

सर्वर से क्लाइंट को भेजे गए संदेश खोजें:

text
ws.direction.eq:"To Client"

JSON-जैसे संदेश खोजें:

text
ws.raw.cont:"{" AND ws.raw.cont:"}"

उपयोगी सहेजे गए फ़िल्टर ​

नामक्वेरी
API त्रुटियाँreq.path.cont:"/api/" AND resp.code.gte:400
प्रमाणीकरण एंडपॉइंटreq.path.cont:"login" OR req.path.cont:"oauth" OR req.path.cont:"session"
JSON ट्रैफ़िकresp.header["content-type"].value.cont:"json"
ध्यान देने योग्य मेथडreq.method:POST OR req.method:PUT OR req.method:PATCH OR req.method:DELETE
संभावित सीक्रेटresp.body.cont:"api_key" OR resp.body.cont:"secret" OR resp.body.cont:"token"

सीमाएँ ​

फ़िल्टर का व्यवहार पूर्वानुमेय रखने के लिए Ogma क्वेरी की जटिलता सीमित करता है:

  • नेस्टेड अभिव्यक्तियों की अधिकतम गहराई: 16।
  • क्लॉज़ की अधिकतम संख्या: 64।

यदि क्वेरी बहुत जटिल हो जाए, तो उसे सहेजे गए फ़िल्टर में विभाजित करें या व्यापक जाँच के लिए खोजें का उपयोग करें।

मालिकाना सॉफ़्टवेयर। सभी अधिकार सुरक्षित हैं।