⭕️اگر به یک برنامه کامپیوتری، یک ورودی نامعتبر بدیم چه اتفاقی میفته؟
✅ به عنوان مثال قرار بوده شما شماره موبایلتون رو وارد کنید (که طبیعتا عدد هست) اما حروف انگلیسی وارد کردید که خب طبعا نامعتبر خواهد بود. اینجا برنامه "اگر" متوجه این خطا بشه قاعدتا به یک ارور خورده و مرحله بعدی هندل کردن این ارور (Error handling) هست، واکنشی که این برنامه باید در مواجهه با این ارور داشته باشه.
⏪ اما اگر برنامه متوجه این خطا نشه چی؟ خب طبعا برنامه وارد مرحله ارور هندلینگ نمیشه و شما پیام خطایی از برنامه دریافت نمیکنید.
🖥 شاید یک جایی در روند اجرا، بخشی از برنامه بخواد از این عدد (که حالا عدد نیست) استفاده کنه و روی اون عملیاتی رو انجام بده و خب، یا به یک خروجی کاملا غلط میرسه (چون با حروف مثل عدد برخورد کرده) یا برنامه کلا به مشکل بر میخوره و "کرش" (crash) میکنه. ( یا مثل بعضی زبون ها معلوم نیس چه اتفاقی بیفته، مثل undefined behaviour ها در c++ )
⚠️ ممکنه یک حالت ساده که توسط برنامه شناسایی نشده، نهایتا در کل روند برنامه مشکل جدی ایجاد کنه.
⏪ با این مقدمه، تعریف فازینگ (Fuzzing) بسیار راحت خواهد بود: "دادن حجم زیادی از ورودی های "نیمه تصادفی" به برنامه برای پیدا کردن اشکالات و آسیب پذیری های احتمالی".
🔗 بیشتر بخوانید در:
https://vrgl.ir/6MX7u
Post #374
560