Tartalomjegyzék:
Meghatározás - Mit jelent a nem biztonságos?
A nem biztonságos C programozási nyelv (C #) kulcsszó a kódrészlet jelölésére szolgál, amelyet a .NET-keretrendszer Common Language Runtime (CLR) nem kezel, vagy a nem kezelt kódot. A nem biztonságos a típus vagy tag deklarálásakor, vagy a blokk kód megadásához használható. Egy módszer meghatározására használva a teljes módszer környezete nem biztonságos.
A nem biztonságos kód jó interoperábilitást biztosít a nem kezelt alkalmazásprogramozási interfészekkel (API) vagy a rendszerhívásokkal, és kompatibilis interfészként szolgál a harmadik féltől származó dinamikus linkkönyvtárakhoz (DLL), amelyekhez paraméterek átadására mutatók szükségesek. A nem biztonságos kódot szintén fel lehet használni a hibakeresés során, amikor a folyamat tartalma ellenőrzést vagy elemzést igényel.
A Techopedia magyarázza a Nem biztonságos oldalt
A nem biztonságos adatok olyan kiosztott memóriaadatokra vonatkoznak, amelyeket a CLR nem irányít, mint például egy új módszerrel kiosztott Windows fogantyúk vagy mutatók.
A nem biztonságos kód olyan nyilatkozatra vagy módszerre utal, amely hozzáfér a nem kezelt memóriához, ideértve:
- Hívások a Windows API-khoz
- Felhívások a Component Object Model (COM) módszer interfész összetevőire, amelyek mutatóval vagy teljesítménykritikus kóddal rendelkező struktúrákat tartalmaznak.
A nem biztonságos kódot elsősorban akkor használják, amikor a műveletek mutatókat tartalmaznak, és általában akkor, amikor a kódot a kezelt kontextuson kívül hajtják végre. A nem biztonságos kódfordításhoz a "/ nem biztonságos" lehetőséget kell megadni a fordítási paranccsal.
Teljesen megbízható környezetben a CLR szükséges a nem biztonságos kódfuttatáshoz. A CLR azonban nem ellenőrzi a nem biztonságos kódot. A CLR támogatja a nem biztonságos kódot, hogy közvetlen hozzáférést biztosítson a nem kezelt memóriakódhoz, amelyet teljesítmény okokból néha előnyben részesítenek.
Mivel a CLR fenntartja a típusbiztonságot, a C # nem támogatja a mutató aritmetikáját a kezelt kódban, ellentétben a C / C ++ -al. A nem biztonságos kulcsszó lehetővé teszi a mutató használatát nem kezelt kódban. A biztonság azonban nem garantált, mivel a szigorú objektum-hozzáférési szabályokat nem tartják be. Például a mutatóműveleti képességeket a Java Runtime Environment (JRE) nem biztosítja.
A nem biztonságos kód problémákat vethet fel a stabilitással és a biztonsággal kapcsolatban, a benne rejlő összetett szintaxis és a memóriával kapcsolatos hibák, például a verem túlcsordulása, a rendszermemória elérése és felülírása miatt. A fejlesztők extra gondja nélkülözhetetlen a lehetséges hibák vagy biztonsági kockázatok elkerülése érdekében.