CA2111: Los punteros no deben estar visibles
Elemento | Valor |
---|---|
RuleId | CA2111 |
Category | Microsoft.Security |
Cambio importante | Problemático |
Causa
Un campo System.IntPtr o System.UIntPtr público o protegido no es de solo lectura.
Nota
Esta regla está en desuso. Para más información, consulte Reglas en desuso.
Descripción de la regla
IntPtr y UIntPtr son tipos de puntero que se usan para acceder a la memoria no administrada. Si un puntero no es privado, interno o de solo lectura, el código malintencionado puede cambiar el valor del puntero, lo que podría permitir el acceso a ubicaciones arbitrarias en memoria o provocar errores en la aplicación o el sistema.
Si tiene previsto proteger el acceso al tipo que contiene el campo de puntero, consulte CA2112: Los tipos protegidos no deben exponer campos.
Cómo corregir infracciones
Proteja el puntero haciendo que sea de solo lectura, interno o privado.
Cuándo suprimir las advertencias
Suprima una advertencia de esta regla si no se basa en el valor del puntero.
Ejemplo
En el código siguiente se muestran punteros que infringen y cumplen la regla. Observe que los punteros no privados también infringen la regla CA1051: No declarar campos de instancia visibles.
using System;
namespace SecurityRulesLibrary
{
public class ExposedPointers
{
// Violates rule: PointersShouldNotBeVisible.
public IntPtr publicPointer1;
public UIntPtr publicPointer2;
protected IntPtr protectedPointer;
// Satisfies the rule.
internal UIntPtr internalPointer;
private UIntPtr privatePointer;
public readonly UIntPtr publicReadOnlyPointer;
protected readonly IntPtr protectedReadOnlyPointer;
}
}
Reglas relacionadas
CA2112: Los tipos seguros no deben exponer campos
CA1051: No declarar campos de instancia visibles
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de