Printsiplar, siyosatlar va himoya Dasturiy ta'minot xavfsizligi


int main() { 10 -sinf Greeter: jamoat bazasi { 11 public: int



Download 3,9 Mb.
Pdf ko'rish
bet20/55
Sana07.04.2022
Hajmi3,9 Mb.
#534884
1   ...   16   17   18   19   20   21   22   23   ...   55
Bog'liq
1. M.Payer. Software Security

int
main() {
10 -sinf Greeter: jamoat bazasi { 11 public:
int
loc; virtual
void
sayHi(const
char
*str)
{ std::cout << str << std::endl;
19 Baza *b1 = yangi Greeter();
4 Xotira va tur xavfsizligi
20 Baza *b2 = yangi Exec();
30 //
Past darajadagi amalga oshirish: g[0][0](str);
31
g->sayHi("/
usr/bin/xcalc");
32 g->loc = 12; //
xotira xavfsizligi buzilishi
21 Salom beruvchi *g;
1 sinf Baza { int bazasi; };
34 o'chirish b1; 35
o'chirish b2; 36 }
42
3 - sinf Exec: public Base { 4 public:
virtual
void exec(const char
*prg) { 5
system(prg);
}
16 };
23 g = static_cast(b1); 24 g-
>sayHi("Salomchi
salom deydi!");
}
26 //
Type chalkashlik
27 g =
static_cast(b2);
7 8 };
29 //
Greeter::sayHi o'rniga Exec::exec ni bajaring
Machine Translated by Google


Translatsiyalarni qayta talqin qilish dasturchiga asosiy turdagi
taxminlarni aniq buzish va ko'rsatgich yoki asosiy xotira ob'ektiga
boshqa turni qayta belgilash imkonini beradi. C++ tilining past
darajadagi tabiati tufayli dasturchi xom xotira ob'ektiga yozishi
va to'g'ridan-to'g'ri asosiy ob'ektni o'zgartirishi mumkin.
Ideal holda, dastur statik tarzda tasdiqlangan turi xavfsiz bo'lishi
mumkin. Afsuski , asosiy turdagi tizimning umumiyligi va xom
xotira bilan ishlash imkoniyati tufayli bu C/C++ uchun mumkin
emas. Shuning uchun mudofaalar ish vaqtiga murojaat qilishlari kerak
Qayta talqin qilish translatsiyalari xotira ob'ektini boshqa tur ostida qayta
tasniflash imkonini beradi. Statik translatsiyalarning afzalligi shundaki, ular
ish vaqti uchun hech qanday qo'shimcha xarajatlarga ega emas, lekin faqat
kompilyatsiya vaqtida tekshiriladi. Statik translatsiyalarda hech qanday ish
vaqti kafolati yo'q va noto'g'ri turdagi ob'ektlar ish vaqtida ishlatilishi mumkin.
Misol uchun, quyidagi rasmda asosiy turdagi ob'ektni noqonuniy pastga
tushirishdan keyin pastki tur sifatida foydalanish mumkin bo'lgan turdagi buzilish ko'rsatilgan.
C yoki C++ kabi past darajadagi tillarda turdagi xavfsizlik aniq emas va xotira
ob'ekti o'zboshimchalik bilan qayta talqin qilinishi mumkin.
C++ cast operatsiyalarining murakkab to'plamini taqdim etadi.
Statik translatsiyalar faqat kompilyatsiya vaqtida ikki tur mos
kelishini tekshirish uchun tekshiriladi . Dinamik translatsiyalar sekin
ish vaqtini tekshirishni amalga oshiradi, bu faqat virtual
funktsiyalarga ega polimorfik sinflar uchun mumkin, chunki aks
holda, xotira ob'ekti tartibida ob'ekt turini aniqlash uchun vtable ko'rsatkichi mavjud emas.
4 Xotira va tur xavfsizligi
Yuqoridagi kod misolida Greeter tipidagi ob'ekt ajratiladi va keyin
Base turiga ko'tariladi. Keyinchalik, Base turi Exec ga tushiriladi.
Ob'ektning ish vaqti turi Greeter bo'lgani uchun, bu pasaytirish
noqonuniy hisoblanadi va bu turdagi chalkashliklarga olib keladi - bu
turdagi xavfsizlikning buzilishi.
43
Machine Translated by Google


Baza
Salom beruvchi
Exec
cheklar. Dasturdagi barcha translatsiyalarni aniq qilish va ularning ish
vaqtida to'g'riligini tekshirish orqali biz ishlash vaqti turi kompilyatsiya
vaqtida statik ravishda qabul qilingan turga mos kelishini ta'minlaymiz
[8,11,18,28]. Bunday yechim xotira xavfsizligi kabi barcha ajratilgan
xotira ob'ektlari uchun metama'lumotlarni saqlashi kerak . Chegara
o'rniga, turdagi xavfsizlik mexanizmi har bir ajratilgan ob'ektning haqiqiy
turini qayd qiladi. C++ dagi barcha translatsiya turlari keyinchalik ish
vaqtini tekshirish bilan almashtiriladi.
Xotira va turdagi xavfsizlik xavfsizlik zaifliklarining asosiy
sababidir. Xotira xavfsizligi ko'rsatkichlar uchun fazoviy va
vaqtinchalik imkoniyatlarni belgilaydi . Fazoviy xotira xavfsizligi
ko'rsatkichlar faqat mos keladigan chegaralardagi ob'ektlarga
kirishini kafolatlaydi. Vaqtinchalik xotira xavfsizligi asosiy ob'ektning jonliligini tekshiradi.

Download 3,9 Mb.

Do'stlaringiz bilan baham:
1   ...   16   17   18   19   20   21   22   23   ...   55




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish