Obsah:
Definice - Co znamená nebezpečný?
Nebezpečné je klíčové slovo programovacího jazyka C (C #), které se používá k označení části kódu, která není spravována pomocí Common Language Runtime (CLR) .NET Framework nebo nespravovaného kódu. Nebezpečné se používá při deklaraci typu nebo člena nebo ke specifikaci blokového kódu. Při použití k určení metody je kontext celé metody nebezpečný.
Nebezpečný kód poskytuje dobrou interoperabilitu s nespravovanými aplikačními programovacími rozhraními (API) nebo systémovými voláními a slouží jako kompatibilní rozhraní pro knihovny dynamických odkazů třetích stran (DLL), které vyžadují ukazatele pro předávání parametrů. Nebezpečný kód lze také použít během ladění, když obsah procesu vyžaduje kontrolu nebo analýzu.
Techopedia vysvětluje nebezpečné
Nebezpečná data se vztahují na data přidělené paměti, která nejsou řízena CLR, jako jsou popisovače Windows nebo ukazatele přidělené novou metodou.
Nebezpečný kód označuje příkaz nebo metodu, která přistupuje k nespravované paměti, včetně:
- Volání do rozhraní API systému Windows
- Volání na komponenty rozhraní metody modelu COM (Component Object Model) zahrnující struktury s ukazateli nebo kódem kritickým pro výkon.
Nebezpečný kód se primárně používá, když operace zahrnují ukazatele, a obecně, když je kód spuštěn mimo spravovaný kontext. Kompilace nebezpečného kódu vyžaduje specifikaci volby „/ nebezpečný“ pomocí příkazu kompilace.
V plně důvěryhodných prostředích je pro provádění nebezpečného spuštění kódu vyžadováno CLR. CLR však neověřuje nebezpečný kód. CLR podporuje nebezpečný kód pro zajištění přímého přístupu k nespravovanému kódu paměti, který je někdy z důvodů výkonu upřednostňován.
Protože CLR udržuje typovou bezpečnost a zabezpečení, C # nepodporuje aritmetiku ukazatele ve spravovaném kódu, na rozdíl od C / C ++. Nebezpečné klíčové slovo umožňuje použití ukazatele v nespravovaném kódu. Bezpečnost však není zaručena, protože nejsou dodržována přísná pravidla pro přístup k objektům. Například funkce provozování ukazatele nejsou poskytovány v prostředí Java Runtime Environment (JRE).
Nebezpečný kód může způsobovat problémy se stabilitou a zabezpečením díky své vlastní komplexní syntaxi a potenciálu pro chyby související s pamětí, jako je přetečení zásobníku, přístup a přepsání systémové paměti. Zvláštní péče o vývojáře je prvořadá pro odvrácení možných chyb nebo bezpečnostních rizik.
