स्वरूप स्ट्रिंग - यह एक ASCII स्ट्रिंग है जिसका उपयोग स्ट्रिंग्स को फ़ॉर्मेट करने के लिए किया जाता है। यह एक ASCII स्ट्रिंग है जिसमें टेक्स्ट और फ़ॉर्मेटिंग पैरामीटर शामिल हैं।
प्रोग्राम के आउटपुट स्वरूपण के लिए, सी में विभिन्न प्रारूप स्ट्रिंग हैं।
फ़ॉर्मेट स्ट्रिंग भेद्यताएं
ये बग हैं जो प्रोग्रामिंग में त्रुटियों के कारण उत्पन्न होते हैं जिन्हें प्रोग्रामर द्वारा आसानी से बनाया जा सकता है। यदि ऐसा कोई त्रुटि-प्रवण कोड ब्लॉग printf, sprintf, जैसे आउटपुट फ़ंक्शन को पास किया जाता है आदि। फिर राइट ऑपरेशन एक मनमाना मेमोरी एड्रेस पर किया जाता है।
उदाहरण
#include<stdio.h> #include<string.h> int main(){ char buffer[100]; strncpy(buffer, "Hii ", 5); printf(buffer); return 0; }
रोकथाम
कुछ उपाय हैं जो प्रारूप स्ट्रिंग कमजोरियों को रोकने के लिए किए जा सकते हैं
-
डेटा इनपुट करने के बजाय प्रोग्राम के हिस्से के रूप में प्रारूप स्ट्रिंग का उपयोग करने का प्रयास करें। इन्हें "%s" स्ट्रिंग प्रारूप का उपयोग करके आसानी से हल किया जा सकता है।
-
प्रारूप स्ट्रिंग बनाने के लिए स्थिरांक का उपयोग करें और सभी चर स्ट्रिंग्स को कॉन्स्टेंटस्ट्रिंग में उपयोग करने के बजाय फ़ंक्शन कॉल के तर्क के रूप में निकालें।
-
ऐसे मामलों के लिए जहां स्थिर और परिवर्तनशील स्ट्रिंग आरंभीकरण मानदंडों का पालन नहीं किया जा सकता है प्रारूप गार्ड का उपयोग किया जाता है।