
उपयोगकर्ता-इनपुट सत्यापन, इंजेक्शन और यूनिकोड हैंडलिंग के QA और सुरक्षा परीक्षण के लिए दुर्भावनापूर्ण और एज-केस इनपुट स्ट्रिंग्स (blns.txt/blns.json) की क्यूरेटेड सूची।
Big List of Naughty Strings एक विकसित होती हुई सूची है जिसमें ऐसी स्ट्रिंग्स शामिल हैं जिनके उपयोगकर्ता-इनपुट डेटा के रूप में उपयोग किए जाने पर समस्याएँ उत्पन्न होने की उच्च संभावना होती है। इसका उद्देश्य स्वचालित और मैन्युअल दोनों QA परीक्षणों में सहायता करना है; यह तब उपयोगी होता है जब आपका QA इंजीनियर किसी बार में चला जाता है।
यहाँ तक कि अरबों डॉलर मूल्य की कंपनियाँ भी, जिनके पास भारी मात्रा में स्वचालित परीक्षण होते हैं, हर खराब इनपुट नहीं खोज सकतीं। उदाहरण के लिए, देखें कि जब आप Twitter पर शून्य-चौड़ाई स्पेस (U+200B) ट्वीट करने का प्रयास करते हैं तो क्या होता है:
हालाँकि यह कोई दुर्भावनापूर्ण त्रुटि नहीं है, और सामान्य उपयोगकर्ता अजीब यूनिकोड ट्वीट नहीं करते, फिर भी अप्रत्याशित इनपुट के लिए "आंतरिक सर्वर त्रुटि" उपयोगकर्ता के लिए कभी भी सकारात्मक अनुभव नहीं होता, और वास्तव में यह गहरे स्ट्रिंग-सत्यापन संबंधी मुद्दों का लक्षण हो सकता है। Big List of Naughty Strings का उद्देश्य ऐसे मुद्दों को उजागर करने में सहायता करना है।
blns.txt में न्यूलाइन-विभाजित स्ट्रिंग्स और टिप्पणियाँ होती हैं जिनके आगे # होता है। टिप्पणियाँ स्ट्रिंग्स को अनुभागों में विभाजित करती हैं ताकि उन्हें आसानी से मैन्युअल रूप से पढ़ा जा सके और इनपुट फ़ॉर्म में कॉपी/पेस्ट किया जा सके। जो लोग स्ट्रिंग्स को प्रोग्रामेटिक रूप से एक्सेस करना चाहते हैं, उनके लिए एक blns.json फ़ाइल प्रदान की गई है जिसमें एक ऐरे होता है जिसमें सभी टिप्पणियाँ हटा दी गई हैं (scripts फ़ोल्डर में blns.json उत्पन्न करने के लिए उपयोग की जाने वाली एक Python स्क्रिप्ट होती है)।
अधिक स्ट्रिंग्स या अतिरिक्त अनुभाग जोड़ने के लिए बेझिझक एक pull request भेजें। हालाँकि, कृपया बहुत लंबी स्ट्रिंग्स (255+ अक्षर) वाले pull requests न भेजें, क्योंकि इससे सूची को देखना बहुत अधिक कठिन हो जाता है।
इसी तरह, कृपया ऐसे pull requests न भेजें जो फ़ाइल की मैन्युअल उपयोगिता से समझौता करते हों। इसमें EICAR परीक्षण स्ट्रिंग शामिल है, जिसके कारण फ़ाइल को एंटीवायरस स्कैनर द्वारा फ़्लैग किया जा सकता है, और वे फ़ाइलें भी शामिल हैं जो blns.txt की एन्कोडिंग बदल देती हैं। साथ ही, null कैरेक्टर (U+0000) वाली स्ट्रिंग न भेजें, क्योंकि यह GitHub पर फ़ाइल प्रारूप को बाइनरी में बदल देती है और pull requests में इसे अपठनीय बना देती है। अंत में, स्ट्रिंग जोड़ते या हटाते समय कृपया pull request करते समय सभी फ़ाइलों को अपडेट करें।
Big List of Naughty Strings का उपयोग उस सॉफ़्टवेयर के लिए किया जाना चाहिए जिसका स्वामित्व और प्रबंधन आपके पास है। कुछ Naughty Strings सुरक्षा कमज़ोरियों को इंगित कर सकती हैं, और परिणामस्वरूप ऐसी स्ट्रिंग्स का तृतीय-पक्ष सॉफ़्टवेयर के साथ उपयोग करना अपराध हो सकता है। सूची के उपयोग से होने वाली किसी भी नकारात्मक कार्रवाई के लिए अनुरक्षक ज़िम्मेदार नहीं है।
इसके अतिरिक्त, Big List of Naughty Strings आपकी सेवा के लिए औपचारिक सुरक्षा/पेनेट्रेशन परीक्षण का पूर्ण रूप से व्यापक विकल्प नहीं है।
Big List of Naughty Strings के विभिन्न कार्यान्वयन विभिन्न पैकेज मैनेजरों तक पहुँच चुके हैं। इन्हें बाहरी पक्षों द्वारा अनुरक्षित किया जाता है, लेकिन इन्हें यहाँ पाया जा सकता है:
अन्य को सूचीबद्ध करने के लिए कृपया एक PR खोलें।
Max Woolf (@minimaxir)
MIT