Hogar Desarrollo ¿Qué es inseguro? - definición de techopedia

¿Qué es inseguro? - definición de techopedia

Tabla de contenido:

Anonim

Definición - ¿Qué significa inseguro?

Inseguro es una palabra clave del lenguaje de programación C (C #) utilizada para denotar una sección de código que no es administrada por Common Language Runtime (CLR) de .NET Framework o código no administrado. No seguro se utiliza en la declaración de un tipo o miembro o para especificar el código de bloque. Cuando se usa para especificar un método, el contexto de todo el método no es seguro.


El código inseguro proporciona una buena interoperabilidad con interfaces de programación de aplicaciones (API) no administradas o llamadas al sistema y sirve como una interfaz compatible para bibliotecas de enlaces dinámicos (DLL) de terceros, que requieren punteros para pasar parámetros. El código inseguro también puede usarse durante la depuración, cuando el contenido del proceso requiere inspección o análisis.

Techopedia explica inseguro

Los datos inseguros se refieren a los datos de memoria asignados que no están controlados por el CLR, como los identificadores o punteros de Windows asignados a través de un nuevo método.


El código inseguro se refiere a una declaración o método que accede a la memoria no administrada, que incluye:

  • Llamadas a las API de Windows
  • Llamadas a componentes de interfaz del método Modelo de objetos componentes (COM) que involucran estructuras con punteros o código crítico de rendimiento.

El código inseguro se usa principalmente cuando las operaciones involucran punteros y, en general, cuando el código se ejecuta fuera del contexto administrado. La compilación de código inseguro requiere la especificación de la opción "/ inseguro" con el comando de compilación.


En entornos totalmente confiables, se requiere CLR para la ejecución de código inseguro. Sin embargo, CLR no verifica el código inseguro. CLR admite código inseguro para proporcionar acceso directo al código de memoria no administrado, que a veces se prefiere por razones de rendimiento.


Debido a que CLR mantiene la seguridad de los tipos, C # no admite la aritmética de puntero en el código administrado, a diferencia de C / C ++. La palabra clave insegura permite el uso del puntero en código no administrado. Sin embargo, la seguridad no está garantizada porque no se siguen reglas estrictas de acceso a objetos. Por ejemplo, las capacidades de operación del puntero no se proporcionan en Java Runtime Environment (JRE).


El código inseguro puede crear problemas con la estabilidad y la seguridad, debido a su sintaxis compleja inherente y el potencial de errores relacionados con la memoria, como el desbordamiento de pila, el acceso y la sobrescritura de la memoria del sistema. La atención adicional del desarrollador es primordial para evitar posibles errores o riesgos de seguridad.

Esta definición fue escrita en el contexto de C #
¿Qué es inseguro? - definición de techopedia