021-71053903 [email protected] پشتیبانی از شنبه تا چهارشنبه ساعت 9 الی 16

باگ Bug چیست ؟!!

یکی از اصطلاحات پرکاربرد در دنیای برنامه نویسی، باگ (Bug) یا نقص نرم‌افزاری است. این اصطلاح جزو اصطلاحاتی است که تقریبا همیشه در میان صحبت‌های برنامه نویسان مورد استفاده قرار می‌گیرد. زیرا تقریبا هیچ برنامه نویسی در دنیا وجود ندارد که با باگ های نرم افزاری و فرآیند دیباگ‌کردن آنها برخورد نکرده باشد. پس اگر تاکنون با این مفهوم آشنا نشده‌اید، در ادامه این مطلب با ما همراه باشید تا بدانید باگ چیست و انواع آن کدام است.

باگ یا Bug چیست؟

Bug چیست؟ باگ در لغت به معنای حشره است. این واژه در حوزه علم رایانه به معنای نقص یا اشکال نرم‌افزاری به کار می‌رود. نقص‌های نرم‌افزاری انواع مختلفی دارند و دارای منشا‌های متفاوتی هستند. بنابراین به خطاهایی که اجرای صحیح نرم‌افزار را با اختلال رو به رو می‌کنند، باگ می‌گویند.

تاریخچه Bug

گفته می‌شود که این اصطلاح اولین بار توسط خانم Grace Murray Hopper به کار گرفته شده است. خانم Grace Hopper به عنوان یکی از اولین برنامه نویسان زن شناخته می شود. زمانی که Grace Hopper در دانشگاه هاروارد در حال اشکال‌زدایی یا دیباگ کردن  (Debugging) کامپیوتر Mark II بوده است، از این لغت به معنای خطا و اشکال استفاده کرده است. زیرا زمانی که خانم Hopper به همراه تعدادی از متخصصین در حال بررسی کامپیوتر Mark II بوده اند، متوجه شدند که اختلال در عملکرد این کامپیوتر به دلیل وجود یک سوسک در آن ایجاد شده است. بنابراین در آنجا از اصطلاح Bug به معنای نقص نرم‌افزاری استفاده کردند.

انواع باگ های برنامه نویسی

در بخش قبل فهمیدیم که باگ چیست و این مفهوم چگونه به دنیای برنامه‌نویسان وارد شده است. وجود باگ در نرم‌افزارها، نشان‌دهنده این حقیقت است که همواره کدنویسی نرم افزارها می‌تواند با نقص همراه باشد. بنابراین نرم‌افزارها همیشه نیاز به بروزرسانی، دیباگ کردن و بهبود خواهند داشت. بنابراین برخلاف باور برنامه‌نویسان تازه وارد، نمی‌توان انتظار داشت که در کدنویسی با باگ نرم افزاری یا عملیات دیباگ کردن آن‌ها مواجه نشد.

باگ‌ها می‌توانند انواع مختلفی داشته باشند از جمله :

  • سینتکسی (Syntax) : زمانی که قواعد مربوط به نوشتار زبان برنامه‌نویسی رعایت نشوند با باگ سینتکسی مواجه می‌شویم. مثلا از عملگر، حروف و یا کاراکتر اشتباهی در کدها استفاده شود.
  • منطقی (Logic) : در شرایطی که منطق نرم‌افزار اشتباه پیاده‌سازی شده باشد، برای مثال اجرای نرم افزار در یک چرخه (Loop) بی‌نهایت قرار گیرد.
  • محاسباتی (Arithmetic) : اگر محاسبات ریاضی در نرم‌افزار با خطا رو به رو شوند، مثلا عددی تقسیم بر صفر شود و یا نتیجه نهایی مورد‌انتظار دارای خطای محاسباتی باشد.
  • منابع (Resource) : زمانی که در به‌کارگیری منابع نرم‌افزاری، نرم‌افزار دچار خطا شود. مثلا اشاره به متغیری ناموجود یا تعریف‌نشده در نرم‌افزار.
  • کار تیمی (Teamworking) : ایجاد اختلاف و خطا در کدنویسی برنامه‌نویسان به دلیل کدنویسی تیمی، مثلا تفاوت در نام‌گذاری و مستند‌سازی نرم‌افزار.
  • تعامل (Interfacing) : نرم‌افزار در تعامل با بخش‌های دیگر نرم‌افزاری و سخت‌افزاری دچار خطا شود مانند استفاده از Api نادرست.
  • چند رشته ای (Multi-threading) : زمانی که اجرای thread ها در نرم‌افزارها دچار مشکل می‌شوند. مثلا جایی که وظیفه A تا زمانی که وظیفه B تمام نشده باشد، ادامه نخواهد یافت، اما در عین حال، وظیفه B نمی‌تواند ادامه یابد تا زمانی که کار A تمام شود.

لیست کامل آسیب پذیری های مربوط به وبسایت ها – باگ

  1. Arbitary File Deletion
  2. Code Execution
  3. (Cookie Manipulation (meta http-equiv & crlf injection
  4. (CRLF Injection (HTTP response splitting
  5. (Cross Frame Scripting (XFS
  6. (Cross-Site Scripting (XSS
  7. Directory traversal
  8. Email Injection
  9. File inclusion
  10. Full path disclosure
  11. LDAP Injection
  12. PHP code injection
  13. PHP curl_exec() url is controlled by user
  14. PHP invalid data type error message
  15. PHP preg_replace used on user input
  16. PHP unserialize() used on user input
  17. Remote XSL inclusion
  18. Script source code disclosure
  19. Server-Side Includes (SSI) Injection
  20. SQL injection
  21. URL redirection
  22. XPath Injection vulnerability
  23. EXIF
  24. Blind SQL injection (timing)
  25. (Blind SQL/XPath injection (many types
  26. ۸٫۳ DOS filename source code disclosure
  27. Search for Backup files
  28. Cross Site Scripting in URI
  29. PHP super-globals-overwrite
  30. Script errors such as the Microsoft IIS Cookie Variable Information Disclosure

حمله های مشهور به حمله دیکشنری

  • Cross Site Scripting in path
  • Cross Site Scripting in Referer
  • (Directory permissions (mostly for IIS
  • (HTTP Verb Tampering (HTTP Verb POST & HTTP Verb WVS
  • Possible sensitive files
  • Possible sensitive files
  • (Session fixation (jsessionid & PHPSESSID session fixation
  • (Vulnerabilities (e.g. Apache Tomcat Directory Traversal, ASP.NET error message etc
  • (WebDAV (very vulnerable component of IIS servers

حمله های افشاء جستجو

  • Application error message
  • Check for common files
  • Directory Listing
  • Email address found
  • Local path disclosure
  • Possible sensitive files
  • Microsoft Office possible sensitive information
  • Possible internal IP address disclosure
  • (Possible server path disclosure (Unix and Windows
  • Possible username or password disclosure
  • Sensitive data not encrypted
  • Source code disclosure
  • (Trojan shell (r57,c99,crystal shell etc
  • ۹IF ANY )Wordpress database credentials disclosure)

اپلود فایل

  • Unrestricted File Upload

حمله های رایج

  • Microsoft IIS WebDAV Authentication Bypass
  • SQL injection in the authentication header
  • Weak Password
  • (GHDB – Google hacking database ( using dorks to find what google crawlers have found like passwords etc

حمله های وب و سرور

  • (Application Error Message (testing with empty, NULL, negative, big hex etc
  • Code Execution
  • SQL Injection
  • XPath Injection
  • (Blind SQL/XPath injection (test for numeric,string,number inputs etc
  • (Stored Cross-Site Scripting (XSS
  • (Cross-Site Request Forgery (CSRF

نتیجه گیری

بررسی باگ یکی از مهمترین موضوعات مورد بررسی در دنیای برنامه نویسی است. زیرا همیشه برنامه نویسان در تلاش بوده اند که روش‌هایی را برای ایجاد نرم‌افزارهای خود توسعه دهند که با کمترین میزان خطا همراه باشد. اما از آنجایی که باگ ها و عملیات دیباگ کردن تقریبا جز جدا نشدنی مراحل توسعه یک نرم‌افزار هستند، آشنایی با اصول اشکال‌زدایی در نرم‌افزارها برای برنامه‌نویسان به یک ضرورت تبدیل شده است.

مطالب بیشتر :

ﻫﺎﻧﯽ ﭘﺎت ﭼﯿﺴﺖ ؟!!

VPN چیست ؟!

باگ چیست ؟!!

Bug چیست؟ باگ در لغت به معنای حشره است. این واژه در حوزه علم رایانه به معنای نقص یا اشکال نرم‌افزاری به کار می‌رود

محمد محمدپور

34 مطلب منتشر شده

محمد محمد پور علاقه مند به برنامه نویسی پایتون شاخه ی امنیت تست و نفوذ کارشناس IT دانشگاه کرج علاقه های شخصی ویدیو گیم فیلم موزیک

درباره این مطلب نظر دهید !

مطالب پرمخاطب پایتونی ها

Venom چیست ؟!

V3nom چیست ؟!

2
دقیـقه مطالعه
ادامه ...
VPN چیست ؟!

VPN چیست ؟!

6
دقیـقه مطالعه
ادامه ...

محصولات فروش پایتونی ها

%60
تخفیف

آموزش فیگما (Figma)

30,000 تومان
3
%69
تخفیف

آموزش برنامه نویسی پایتون

35,000 تومان
2