ফরম্যাট স্ট্রিং (Format String) - এটি একটি ASCII স্ট্রিং যা স্ট্রিং ফরম্যাট করার জন্য ব্যবহৃত হয়। এটি টেক্সট এবং ফরম্যাটিং প্যারামিটার দিয়ে গঠিত একটি ASCII স্ট্রিং।
প্রোগ্রামের আউটপুট ফরম্যাট করার জন্য C-এ বিভিন্ন ফরম্যাট স্ট্রিং রয়েছে।
ফরম্যাট স্ট্রিং ভালনারেবিলিটি (FORMAT STRING VULNERABILITIES)
এগুলো হল প্রোগ্রামিং ত্রুটির কারণে উদ্ভূত বাগ যা প্রোগ্রামার সহজেই করতে পারেন। যদি এমন কোনো এরর-প্রোন কোড ব্লক আউটপুট ফাংশন যেমন printf, sprintf ইত্যাদিতে পাস করা হয়। তবে রাইট অপারেশন যেকোনো আর্বিট্রারি মেমরি অ্যাড্রেসে পারফর্ম হয়।
উদাহরণ
#include<stdio.h> #include<string.h> int main(){ char buffer[100]; strncpy(buffer, "Hii ", 5); printf(buffer); return 0; }
প্রতিকার (PREVENTIONS)
ফরম্যাট স্ট্রিং ভালনারেবিলিটি প্রতিকার করার কিছু উপায় রয়েছে
ফরম্যাট স্ট্রিংকে প্রোগ্রামের অংশ হিসেবে ব্যবহার করার চেষ্টা করুন, ইনপুট ডেটা হিসেবে নয়। এগুলো "%s" স্ট্রিং ফরম্যাট ব্যবহার করে সহজে সমাধান করা যায়।
ফরম্যাট স্ট্রিং তৈরি করার জন্য কনস্ট্যান্ট ব্যবহার করুন এবং ভেরিয়েবল স্ট্রিংগুলো ফাংশন কলের আর্গুমেন্ট হিসেবে এক্সট্রাক্ট করুন, কনস্ট্যান্ট স্ট্রিংয়ে ব্যবহার না করে।
যে কেসগুলোতে কনস্ট্যান্ট এবং ভেরিয়েবল স্ট্রিং ইনিশিয়ালাইজেশন নয়ম মেনে চলা যায় না, সেখানে ফরম্যাট গার্ড (format guards) ব্যবহার করা উচিত।