फ़ज़िंग क्या है? कमजोरियों की पहचान के लिए सॉफ्टवेयर परीक्षण तकनीक को समझना
फ़ज़िंग एक सॉफ़्टवेयर परीक्षण तकनीक है जिसमें किसी प्रोग्राम को अमान्य या अप्रत्याशित इनपुट प्रदान करना और संभावित बग या कमजोरियों का पता लगाने के लिए उसके व्यवहार का अवलोकन करना शामिल है। फ़ज़िंग का लक्ष्य वास्तविक दुनिया के परिदृश्यों का अनुकरण करना है जहां उपयोगकर्ता गलत या दुर्भावनापूर्ण इनपुट प्रदान कर सकते हैं, और सॉफ़्टवेयर में संभावित सुरक्षा जोखिमों या स्थिरता के मुद्दों की पहचान करना है। फ़ज़िंग में आमतौर पर यादृच्छिक या अप्रत्याशित इनपुट डेटा उत्पन्न करना शामिल है, जैसे कि विकृत नेटवर्क पैकेट, गलत वर्तनी यूआरएल, या अप्रत्याशित उपयोगकर्ता इनपुट, और इसके व्यवहार का निरीक्षण करने के लिए इसे सॉफ़्टवेयर में फीड करना। फिर किसी भी विसंगति या अप्रत्याशित व्यवहार का पता लगाने के लिए सॉफ़्टवेयर के आउटपुट का विश्लेषण किया जाता है जो भेद्यता या बग का संकेत दे सकता है। फ़ज़िंग कई प्रकार की होती है, जिनमें शामिल हैं:
1। स्टेटिक फ़ज़िंग: इस प्रकार की फ़ज़िंग में संभावित कमजोरियों की पहचान करने के लिए सॉफ़्टवेयर के कोड का विश्लेषण करना और फिर इनपुट डेटा तैयार करना शामिल है जो विशेष रूप से उन कमजोरियों को लक्षित करता है।
2। डायनेमिक फ़ज़िंग: इस प्रकार की फ़ज़िंग में यादृच्छिक इनपुट डेटा उत्पन्न करना और उसके व्यवहार का निरीक्षण करने और किसी भी विसंगति या कमजोरियों का पता लगाने के लिए उसे सॉफ़्टवेयर में फीड करना शामिल है।
3. प्रोटोकॉल फ़ज़िंग: इस प्रकार की फ़ज़िंग में विकृत या अप्रत्याशित पैकेट भेजकर और सर्वर की प्रतिक्रिया को देखकर नेटवर्क प्रोटोकॉल, जैसे HTTP या FTP का परीक्षण करना शामिल है। ग्रे बॉक्स फ़ज़िंग: इस प्रकार की फ़ज़िंग में सॉफ़्टवेयर की आंतरिक कार्यप्रणाली का कुछ ज्ञान होना शामिल है, जैसे कि उपयोग किए गए एल्गोरिदम, और उस ज्ञान का उपयोग लक्षित इनपुट डेटा को तैयार करने के लिए करना। फ़ज़िंग सॉफ़्टवेयर में कमजोरियों की पहचान करने के लिए एक शक्तिशाली उपकरण है, लेकिन इसमें समय लग सकता है -उपभोगशील और संसाधन-गहन। इस प्रकार, इसे आम तौर पर एक व्यापक परीक्षण रणनीति के हिस्से के रूप में उपयोग किया जाता है जिसमें अन्य प्रकार के परीक्षण, जैसे यूनिट परीक्षण और एकीकरण परीक्षण शामिल होते हैं।