- क्या आप किसी **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
- **शामिल हों** [**💬**](https://emojipedia.org/speech-balloon/) [**Discord समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) में या मुझे **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)** का पालन करें।**
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**
**कॉपी किया गया है** [**https://owasp.org/www-community/attacks/Regular\_expression\_Denial\_of\_Service\_-\_ReDoS**](https://owasp.org/www-community/attacks/Regular\_expression\_Denial\_of\_Service\_-\_ReDoS)
**नियमित अभिव्यक्ति सेवा रीडॉस (ReDoS)** एक [सेवा की अस्वीकृति](https://owasp.org/www-community/attacks/Denial\_of\_Service) हमला है, जो इस तथ्य का उपयोग करता है कि अधिकांश नियमित अभिव्यक्ति कार्यान्वयन अत्यंत स्थितियों तक पहुंच सकते हैं जो उन्हें बहुत धीमे रूप से काम करने के कारण बनाती है (इनपुट आकार के गणितीय रूप से संबंधित होती है)। एक हमलावर फिर एक नियमित अभिव्यक्ति का उपयोग करने वाले कार्यक्रम को इन अत्यंत स्थितियों में प्रवेश कराकर बहुत लंबे समय तक लटका सकता है।
नियमित अभिव्यक्ति नैव एल्गोरिदम एक [अनिश्चित सीमित स्थिति मशीन (NFA)](https://en.wikipedia.org/wiki/Nondeterministic\_finite\_state\_machine) बनाता है, जो एक सीमित स्थिति मशीन है जहां प्रत्येक राज्य और इनपुट प्रतीक के लिए कई संभावित अगले राज्य हो सकते हैं। फिर इंजन इनपुट के अंत तक संक्रमण करना शुरू करता है। क्योंकि कई संभावित अगले राज्य हो सकते हैं, एक निर्धारित एल्गोरिदम का उपयोग किया जाता है। यह एल्गोरिदम एक-एक करके सभी संभावित पथों की कोशिश करता है (यदि आवश्यक हो) जब तक एक मिलान नहीं मिलता है (या सभी पथों की कोशिश करके विफल हो जाती है)।
इनपुट `aaaaX` के लिए उपरोक्त ग्राफ में 16 संभावित पथ हैं। लेकिन `aaaaaaaaaaaaaaaaX` के लिए 65536 संभावित पथ हैं, और प्रत्येक अतिरिक्त `a` के लिए यह संख्या दोहरी होती है। यह एक अत्यंत मामला है जहां नैव एल्गोरिदम समस्यापूर्ण होता है, क्योंकि इसे बहुत सारे पथों पर जाना होता है, और फिर विफल हो जाता है।
ध्यान दें, सभी एल्गोरिदम नैव नहीं होते हैं, और वास्तव में रेगेक्स एल्गोरिदम को एक कुशल तरीके से लिखा जा सकता है। दुर्भाग्य से, आजकल अधिकांश रेगेक्स इंजन पूरी तरह से "शुद्ध"
- क्या आप **साइबर सुरक्षा कंपनी** में काम करते हैं? क्या आप अपनी **कंपनी को HackTricks में विज्ञापित** देखना चाहते हैं? या क्या आपको **PEASS के नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग** करने की आवश्यकता है? [**सदस्यता योजनाएं**](https://github.com/sponsors/carlospolop) की जांच करें!
- **अपने हैकिंग ट्रिक्स को [hacktricks रेपो](https://github.com/carlospolop/hacktricks) और [hacktricks-cloud रेपो](https://github.com/carlospolop/hacktricks-cloud) में पीआर जमा करके साझा करें।**