Turinys:
Apibrėžimas - ką reiškia nesaugus?
Nesaugus yra C programavimo kalbos (C #) raktinis žodis, naudojamas žymėti kodo sekciją, kurios nevaldo .NET Framework bendrosios kalbos vykdymo laikas (CLR), arba nevaldomą kodą. Nesaugus naudojamas tipo ar nario deklaracijoje arba norint nurodyti bloko kodą. Kai naudojamas metodas nurodyti, viso metodo kontekstas yra nesaugus.
Nesaugus kodas užtikrina gerą sąveiką su nevaldomomis programų programavimo sąsajomis (API) ar sistemos skambučiais ir yra suderinama sąsaja su trečiųjų šalių dinaminių nuorodų bibliotekomis (DLL), kurioms reikia rodyklių parametrų perdavimui. Nesaugus kodas taip pat gali būti naudojamas derinimo metu, kai proceso turinį reikia patikrinti ar analizuoti.
„Techopedia“ paaiškina nesaugiai
Nesaugūs duomenys reiškia priskirtus atminties duomenis, kurių nekontroliuoja CLR, pvz., „Windows“ rankenas ar rodykles, paskirstytas nauju metodu.
Nesaugus kodas nurodo teiginį ar metodą, kuris pasiekia nevaldomą atmintį, įskaitant:
- Skambučiai į „Windows“ API
- Kreipiamės į komponentinio objekto modelio (COM) metodo sąsajos komponentus, apimančius struktūras su rodyklėmis arba našumo kritiniu kodu.
Nesaugus kodas pirmiausia naudojamas, kai operacijos apima rodykles, ir paprastai, kai kodas vykdomas ne valdomoje aplinkoje. Norint sudaryti nesaugų kodą, reikia nurodyti parinktį „/ nesaugus“ kompiliavimo komanda.
Visiškai patikimoje aplinkoje CLR reikalinga nesaugiam kodo vykdymui. Tačiau CLR netikrina nesaugaus kodo. CLR palaiko nesaugų kodą, kad suteiktų tiesioginę prieigą prie nevaldomo atminties kodo, kuriam kartais teikiama pirmenybė dėl našumo priežasčių.
Kadangi CLR palaiko tipo saugumą, C #, nepaisant C / C ++, nepalaiko rodyklės aritmetinės valdomame kode. Nesaugus raktinis žodis leidžia žymiklį naudoti nevaldomame kode. Tačiau saugumas negarantuojamas, nes nesilaikoma griežtų patekimo į objektus taisyklių. Pavyzdžiui, rodyklės veikimo galimybės nenumatytos „Java Runtime Environment“ (JRE).
Dėl nesaugios kodo gali kilti problemų dėl stabilumo ir saugumo dėl būdingos sudėtingos sintaksės ir galimos su atmintimi susijusios klaidos, tokios kaip kamino perpildymas, priėjimas prie sistemos atminties ir jos perrašymas. Papildomos kūrėjų priežiūros priemonės yra ypač svarbios siekiant išvengti galimų klaidų ar saugumo rizikos.




