From Wikipedia, the free encyclopedia
ایمنی حافظه یک نگرانی در توسعه نرمافزار است که قصد دارد از اشکالات نرمافزاری که باعث آسیب پذیریهای امنیتی در برخورد با دسترسی به حافظه دسترسی تصادفی (RAM) میشود جلوگیری کند، مانند انوع buffer Overflow و اشاره گر آویزان.
انواع مختلفی از خطاهای حافظه میتواند رخ دهد، بسته به نوع زبان برنامه نویسی استفاده میشود.
سرریز پشته - هنگامی رخ میدهد که یک برنامه خارج از فضای پشته اجرا میشود تخصیص شکست - این برنامه تلاش میکند تااز حافظه بیش از مقدار موجوداستفاده شود. در برخی از زبانها، این وضعیت را باید بعد از هر تخصیص دستی بررسی شود.
یک اشاره گر است که اشاره به حافظه شدهاست.
int *a = new int;
int *b = a;
delete b;
/* a and b are now dangling pointers */
*a = 4; /* Memory error: we may be overwriting another pointer's data */
بافر ناحیه ذخیرهسازی موقت دادهاست. سرریز بافر وقتی رخ میدهد که یک برنامه سعی میکند دادههای بیشتری را در یک بافر از آن برای نگهداری در نظر گرفته شده بود ذخیره کند.
# include <stdio.h>
# define ARRAY_SIZE 128
int main(int argc, char *argv[])
{
char arr[ARRAY_SIZE];
if(argc <2)
return -1;
else
{
strcpy(arr, argv[1]);
return 0;
}
}
این برنامه دچار مشکل سرریز بافر میباشد. راه حل برای این مشکل، از ویژگیهای است که اجرای برنامه از کد را در بخش پشته از حافظه اجازه نمیدهد. برخی از زبانهای برنامه نویسی سیستم نسبت به سرریز بافر ایمن هستند.
پرل به صورت خودکار تغییر و تنظیم اندازه آرایهها را انجام میدهد، و Ada95 تشخیص و جلوگیری از سرریز بافر را.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.