ایمنی حافظه: تفاوت میان نسخه‌ها

محتوای حذف‌شده محتوای افزوده‌شده
MerlIwBot (بحث | مشارکت‌ها)
جز ربات: افزودن en:Memory safety
JYBot (بحث | مشارکت‌ها)
خط ۱:
 
'''ایمنی حافظه''' یک نگرانی در توسعه نرم‌افزار است که قصد دارد از اشکالات نرم افزاری که باعث آسیب پذیری‌های امنیتی در برخورد با دسترسی به حافظه دسترسی تصادفی (RAM) می شود جلوگیری کند، مانند انوع buffer Overflow و اشاره گر آویزان.
 
==انواع خطاهای حافظه==
سطر ۷ ⟵ ۵:
انواع مختلفی از خطاهای حافظه می‌تواند رخ دهد، بسته به نوع زبان برنامه نویسی استفاده می‌شود.
 
* '''[[سرریز بافر]]:'''
* '''خطاهای حافظه:'''
* '''درجه دو آزاد:'''
* '''درجه نامعتبر:'''
* متغیرهای مقداردهی نشده
* اشاره گر وحشی
 
*خطاهای خطاهای خارج از حافظه
 
سرریز پشته - هنگامی رخ می‌دهد که یک برنامه خارج از فضای پشته اجرا می‌شود
تخصیص شکست - این برنامه تلاش می‌کند تااز حافظه بیش از مقدار موجوداستفاده شود. در برخی از زبانها، این وضعیت را باید بعد از هر تخصیص دستی بررسی شود.
 
==اشاره گر معلق==
یک اشاره گر است که اشاره به حافظه شده‌است.
 
<syntaxhighlight lang="c">
int *a = new int;
سطر ۲۹ ⟵ ۲۷:
*a = 4; /* Memory error: we may be overwriting another pointer's data */
</syntaxhighlight>
 
==سر ریز بافر==
بافر ناحیه ذخیره سازی موقت داده‌است. سرریز بافر وقتی رخ می‌دهد که یک برنامه سعی می‌کند داده‌های بیشتری را در یک بافر از آن برای نگهداری در نظر گرفته شده بود ذخیره کند.
 
<syntaxhighlight lang="c">
سطر ۴۰ ⟵ ۳۷:
{
char arr[ARRAY_SIZE];
if(argc < 2)
return -1;
else
سطر ۴۹ ⟵ ۴۶:
}
</syntaxhighlight>
 
این برنامه دچار مشکل سرریز بافر می‌باشد.
راه حل برای این مشکل، از ویژگی‌های است که اجرای برنامه از کد را در بخش پشته از حافظه اجازه نمی‌دهد.
سطر ۵۷ ⟵ ۵۴:
 
== منابع ==
{{پانویس}}
* http://people.cs.umass.edu/~emery/pubs/fp014-berger.pdf
 
[[رده:اشکالهای برنامه‌نویسی]]
[[رده:عملکرد امنیتی رایانه]]
 
[[en:Memory safety]]