باگ چیست؟
تاریخچه ی این اسم برمی گرده به خانومی که در دانشگاه مهندسی در حال تحصیل بوده و به همراه تیم مهندسیش که می خواستند یک کامپیوتر رو که ظاهرا از کار افتاده بود درست کنند . که پس از باز کردن اجزای آن شاهد سوسکی می شوند که از آن خارج می شود . این سوسک داخل دستگاه رفته بود و آن را از کار انداخته بود .
|
"برای نمونه می تونیم انجام عمل تقسیم را بیان کنیم. فکر کنید برنامه دو متغیر را دریافت می کند به طوری که متغیر اول عدد صورت و متفیر دوم عدد مخرج می باشد اگر کاربر ابتدا عدد ۶ و سپس عدد ۳ را وارد کند برنامه در خروجی خود عدد۲ را نمایش خواهد داد حال اگر کاربر در صورت یک عدد(مثلا ۶) و در مخرج یک حروف الفبا یا عدد صفر را وارد کند به نظر شما عکس العمل برنامه چه خواهد بود؟
همانطور که می دانیم در ریاضیات تقسیم عدد بر حروف الفبا و صفر تعریف نشده است پس برنامه با حالتی از پیش تعریف نشده برخورد می کند و چون قابلیت اجرا کردن آنها را ندارد هنگ می کند و خروجی منطقی را تحویل نمی دهد."
این مثال که در انجمن آشیانه مطرح شده بود کاملا مفهومی بود . این فقط یه مثال ساده بود از مشکلی که ممکنه به وجود بیاد اما مثلا توی یه برنامه ی امنیتی که برروی وب سایت یه شرکت آنلاین و معتبر اگر این مشکل پیش بیاد و برنامه دارای باگ های فراوان باشه,و برای جلوگیری از این واقعه برنامه نویس باید بعد از نوشتن اون رو debug کنه .debug در مفهوم یعنی اشکال زدایی کردن .
باگ همیشه یکی از خطرناک ترین عامل ها در امنیت برنامه ها هست .باگ به همراه یک اکسپلویت خوب میتونه یه هک کامل رو برای یه هکر نه چندان حرفه ای فراهم کنه . هکر با اکسپلویت (نوعی کد) داده هایی رو به سیستم قربانی میده و اگر سیستم باگ داشته باشه (که در سیستم های معمولی حتما هست ) دچار اختلال میشه و سیستم راه های نفوذ خود را نشون میده