Reglas de seguridad
Las reglas de seguridad apoyan bibliotecas y aplicaciones más seguras. Estas reglas ayudan a evitar errores de seguridad en el programa. Si deshabilita cualquiera de estas reglas, debe marcar claramente el motivo en el código y también informar al oficial de seguridad designado para el proyecto de desarrollo.
En esta sección
Regla | Descripción |
---|---|
CA2100: Revisión de consultas SQL para ver vulnerabilidades de seguridad | Un método establece la propiedad System.Data.IDbCommand.CommandText mediante una cadena que se compila a partir de un argumento de cadena al método . En esta regla se supone que el argumento string contiene la entrada del usuario. Una cadena de comandos SQL creada a partir de la entrada del usuario es vulnerable a ataques por inyección de CÓDIGO SQL. |
CA2109: Revisar los controladores de eventos visibles | Se detectó un método de control de eventos público o protegido. Los métodos de control de eventos no deben exponerse a menos que sea absolutamente necesario. |
CA2119: Métodos de sello que satisfacen interfaces privadas | Un tipo público heredable proporciona una implementación de método reemplazable de una interfaz interna (de tipo "Friend" en Visual Basic). Para corregir una infracción de esta regla, impida que el método se invalide fuera del ensamblado. |
CA2153: Evitar el control de excepciones de estado dañado | Las excepciones de estado dañado (CSE) indican que la memoria está dañada en el proceso. Detectarlos en lugar de permitir que el proceso se bloquee puede provocar vulnerabilidades de seguridad si un atacante puede colocar una vulnerabilidad en la región de memoria dañada. |
CA2300: No usar el deserializador no seguro BinaryFormatter | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2301: No llamar a BinaryFormatter.Deserialize sin establecer primero BinaryFormatter.Binder | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2302: Asegúrese de que BinaryFormatter.Binder esté establecido antes de llamar a BinaryFormatter.Deserialize | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2305: No usar el deserializador no seguro LosFormatter | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2310: No usar deserializador no seguro NetDataContractSerializer | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2311: No deserializar sin establecer primero NetDataContractSerializer.Binder | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2312: Asegúrese de que se establece NetDataContractSerializer.Binder antes de deserializar | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2315: No usar el deserializador no seguro ObjectStateFormatter | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2321: No deserializar con JavaScriptSerializer mediante SimpleTypeResolver | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2322: asegúrese de que JavaScriptSerializer no se inicializa con SimpleTypeResolver antes de deserializar | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2326: No usar valores TypeNameHandling distintos de None | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2327: No usar valores JsonSerializerSettings no seguros | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2328: asegúrese de que JsonSerializerSettings sea seguro | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2329: No deserializar con JsonSerializer mediante una configuración no segura | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2330: asegúrese de que JsonSerializer tiene una configuración segura al deserializar | Los deserializadores no seguros son vulnerables al deserializar datos que no son de confianza. Un atacante podría modificar los datos serializados para incluir tipos inesperados para insertar objetos con efectos secundarios malintencionados. |
CA2350: asegúrese de que la entrada de DataTable.ReadXml()es de confianza | Al deserializar un DataTable con una entrada que no es de confianza, un atacante puede crear entradas malintencionadas para realizar un ataque por denegación de servicio. Es posible que haya vulnerabilidades de ejecución remota de código desconocidas. |
CA2351: asegúrese de que la entrada de DataSet.ReadXml()es de confianza | Al deserializar un DataSet con una entrada que no es de confianza, un atacante puede crear entradas malintencionadas para realizar un ataque por denegación de servicio. Es posible que haya vulnerabilidades de ejecución remota de código desconocidas. |
CA2352: Un objeto DataSet o DataTable no seguro en un tipo serializable puede ser vulnerable a ataques de ejecución de código remoto | Una clase o estructura marcada con SerializableAttribute contiene un campo o propiedad de DataSet o DataTable y no tiene un GeneratedCodeAttribute. |
CA2353: Objeto DataSet o DataTable no seguro en un tipo serializable | Una clase o estructura marcada con un atributo de serialización XML o un atributo de contrato de datos contiene un campo o propiedad DataSet o DataTable. |
CA2354: Un DataSet o un DataTable no seguro en un gráfico de objetos deserializados puede ser vulnerable a ataques de ejecución remota de código | La deserialización con un elemento System.Runtime.Serialization.IFormatter serializado y el gráfico de objetos del tipo convertido pueden incluir un elemento DataSet o DataTable. |
CA2355: Objeto DataSet o DataTable no seguro en un gráfico de objetos deserializado | La deserialización con el gráfico de objetos del tipo convertido o especificado pueden incluir DataSet o DataTable. |
CA2356: Unsafe DataSet or DataTable in web deserialized object graph (DataTable o DataSet no seguro en un gráfico de objetos deserializado web) | Un método con un System.Web.Services.WebMethodAttribute o System.ServiceModel.OperationContractAttribute tiene un parámetro que puede hacer referencia a un DataSet o DataTable. |
CA2361: asegúrese de que la clase generada automáticamente que contiene DataSet.ReadXml() no se usa con datos que no son de confianza | Al deserializar un DataSet con una entrada que no es de confianza, un atacante puede crear entradas malintencionadas para realizar un ataque por denegación de servicio. Es posible que haya vulnerabilidades de ejecución remota de código desconocidas. |
CA2362: Un elemento DataSet o DataTable no seguro en un tipo serializable autogenerado puede ser vulnerable a ataques de ejecución remota de código | Al deserializar la entrada no confiable con BinaryFormatter y el gráfico de objetos deserializados contiene un DataSet o DataTable, un atacante puede crear un payload malicioso para realizar un ataque de ejecución remota de código. |
CA3001: Revisión del código en busca de vulnerabilidades de inyección SQL | Al trabajar con entrada no confiable y comandos SQL, tenga presente los ataques por inyección de SQL. Un ataque por inyección de código SQL puede ejecutar comandos SQL malintencionados, lo que pone en peligro la seguridad y la integridad de la aplicación. |
CA3002: Revisión de código en busca de vulnerabilidades de XSS | Al trabajar con una entrada que no es de confianza desde solicitudes web, tenga en cuentan los ataques de scripting entre sitios (XSS). Un ataque XSS inserta una entrada que no es de confianza en la salida HTML sin procesar, lo que permite al atacante ejecutar scripts malintencionados o modificar contenido malintencionado en la página web. |
CA3003: Revisión de código en busca de vulnerabilidades de inyección de rutas de acceso a archivos | Al trabajar con entradas no confiables de las solicitudes web, tenga cuidado al usar entradas controladas por el usuario para especificar rutas a archivos. |
CA3004: Revisión de código en busca de vulnerabilidades de divulgación de información | La divulgación de información de excepciones proporciona a los atacantes información sobre los elementos internos de la aplicación, lo que puede ayudar a los atacantes a encontrar otras vulnerabilidades para aprovechar. |
CA3006: Revisión del código de vulnerabilidades de inyección de comandos de proceso | Al trabajar con una entrada que no es de confianza, tenga en cuenta los ataques de inyección de comandos. Un ataque de inyección de comandos puede ejecutar comandos malintencionados en el sistema operativo subyacente, poniendo en peligro la seguridad y la integridad del servidor. |
CA3007: Revise el código para ver las vulnerabilidades de redirección abiertas | Al trabajar con entradas que no son de confianza, tenga en cuenta las vulnerabilidades de redirección abiertas. Un atacante puede aprovechar una vulnerabilidad de redirección abierta para usar su sitio web para dar la apariencia de una dirección URL legítima, pero redirigir a un visitante no sospechoso a una suplantación de identidad (phishing) u otra página web malintencionada. |
CA3008: Revisión del código para detectar vulnerabilidades de inyección de XPath | Al trabajar con una entrada que no es de confianza, tenga en cuenta los ataques de inyección de XPath. La construcción de consultas XPath mediante entradas que no son de confianza puede permitir que un atacante manipule malintencionadamente la consulta para devolver un resultado no deseado y, posiblemente, revelar el contenido del XML consultado. |
CA3009: Revisión del código para identificar vulnerabilidades de inyección XML | Al trabajar con una entrada que no es de confianza, tenga en cuenta los ataques por inyección xml. |
CA3010: Revisión de código en busca de vulnerabilidades de inyección de XAML | Al trabajar con entradas que no son de confianza, tenga en cuenta los ataques por inyección de XAML. XAML es un lenguaje de marcado que representa directamente la creación de instancias y la ejecución de objetos. Esto significa que los elementos creados en XAML pueden interactuar con los recursos del sistema (por ejemplo, acceso a la red y E/S del sistema de archivos). |
CA3011: Revisión del código para vulnerabilidades de inyección de DLL | Al trabajar con entradas que no son de confianza, tenga en cuenta la carga de código que no es de confianza. Si la aplicación web carga código que no es de confianza, es posible que un atacante pueda insertar archivos DLL malintencionados en el proceso y ejecutar código malintencionado. |
CA3012: Revisión de código en busca de vulnerabilidades de inyección de expresiones regulares | Al trabajar con una entrada que no es de confianza, tenga en cuenta los ataques por inyección de regex. Un atacante puede usar la inyección de expresiones regulares para modificar malintencionadamente una expresión regular, para que las expresiones regulares coincidan con resultados no deseados o para que la expresión regular consuma una CPU excesiva, lo que da lugar a un ataque por denegación de servicio. |
CA3061: No agregar esquema por dirección URL | No use la sobrecarga no segura del método Add porque puede provocar referencias externas peligrosas. |
CA3075: Procesamiento de DTD inseguro | Si usa instancias de DTDProcessing no seguras o hace referencia a orígenes de entidades externas, el analizador puede aceptar entradas que no son de confianza y revelar información confidencial a los atacantes. |
CA3076: ejecución de scripts XSLT no seguros | Si ejecuta Transformaciones de lenguaje Extensible StyleSheet (XSLT) en aplicaciones .NET de forma no segura, el procesador puede resolver referencias de URI que no son de confianza que podrían revelar información confidencial a los atacantes, lo que conduce a ataques por denegación de servicio y entre sitios. |
CA3077: Procesamiento no seguro en diseño de API, documento XML y lector de texto XML | Al diseñar una API derivada de XMLDocument y XMLTextReader, tenga en cuenta DtdProcessing. El uso de instancias de DTDProcessing no seguras al hacer referencia o resolver orígenes de entidades externas o establecer valores no seguros en el XML puede provocar la divulgación de información. |
CA3147: Marcar los controladores de verbo con ValidateAntiForgeryToken | Al diseñar un controlador MVC de ASP.NET, tenga en cuenta los ataques de falsificación de solicitudes entre sitios. Un ataque de falsificación de solicitudes entre sitios puede enviar solicitudes malintencionadas desde un usuario autenticado al controlador MVC de ASP.NET. |
CA5350: No usar algoritmos criptográficos débiles | Los algoritmos de cifrado débiles y las funciones hash se usan actualmente por varias razones, pero no deben usarse para garantizar la confidencialidad o integridad de los datos que protegen. Esta regla se desencadena cuando encuentra algoritmos TripleDES, SHA1 o RIPEMD160 en el código. |
CA5351: No usar algoritmos criptográficos rotos | Los algoritmos criptográficos rotos no se consideran seguros y su uso debe desaconsejarse. Esta regla se desencadena cuando encuentra el algoritmo hash MD5 o los algoritmos de cifrado DES o RC2 en el código. |
CA5358: No usar modos de cifrado no seguros | No usar modos de cifrado no seguros |
CA5359: No deshabilitar la validación de certificado | Un certificado puede ayudar a autenticar la identidad del servidor. Los clientes deben validar el certificado de servidor para asegurarse de que las solicitudes se envían al servidor previsto. Si ServerCertificateValidationCallback siempre devuelve true , cualquier certificado pasará la validación. |
CA5360: No llamar a métodos peligrosos durante la deserialización | La deserialización no segura es una vulnerabilidad que se produce cuando se usan datos que no son de confianza para abusar de la lógica de una aplicación, infligir un ataque por denegación de servicio (DoS) o incluso ejecutar código arbitrario tras su deserialización. Con frecuencia, es posible que los usuarios malintencionados usen estas características de deserialización cuando la aplicación deserializa los datos que no son de confianza bajo su control. En concreto, la invocación de métodos peligrosos en el proceso de deserialización. Los ataques exitosos de deserialización no segura podrían permitir que un atacante lleve a cabo ataques como DoS, bypass de autenticación y ejecución remota de código. |
CA5361: No deshabilitar el uso de cifrado seguro de Schannel | Establecer Switch.System.Net.DontEnableSchUseStrongCrypto en true debilita la criptografía utilizada en las conexiones salientes de Transport Layer Security (TLS). La criptografía más débil puede poner en peligro la confidencialidad de la comunicación entre la aplicación y el servidor, lo que facilita a los atacantes interceptar datos confidenciales. |
CA5362: ciclo de referencia potencial en el grafo de objetos deserializado | Si deserializa los datos que no son de confianza, cualquier código que procese el gráfico de objetos deserializado debe controlar los ciclos de referencia sin entrar en bucles infinitos. Esto incluye el código que forma parte de una devolución de llamada de deserialización y el código que procesa el grafo de objetos una vez completada la deserialización. De lo contrario, un atacante podría realizar un ataque por denegación de servicio con datos malintencionados que contienen un ciclo de referencia. |
CA5363: No deshabilitar la validación de solicitudes | La validación de solicitudes es una característica de ASP.NET que examina las solicitudes HTTP y determina si contienen contenido potencialmente peligroso que puede provocar ataques por inyección, incluido el scripting entre sitios. |
CA5364: No usar protocolos de seguridad en desuso | La seguridad de la capa de transporte (TLS) protege la comunicación entre equipos, normalmente con el protocolo de transferencia de hipertexto seguro (HTTPS). Las versiones de protocolo anteriores de TLS son menos seguras que TLS 1.2 y TLS 1.3 y tienen más probabilidades de tener nuevas vulnerabilidades. Evite las versiones de protocolo anteriores para minimizar el riesgo. |
CA5365: No desactive la comprobación de encabezados HTTP | La comprobación de encabezados HTTP permite codificar el retorno de carro y los caracteres de nueva línea, \r y \n, que se encuentran en los encabezados de respuesta. Esta codificación puede ayudar a evitar ataques de inyección que explotan aplicaciones que devuelven datos no confiables contenidos en el encabezado. |
CA5366: Utilizar XmlReader para el XML de lectura de DataSet | El uso de un DataSet para leer XML con datos que no son de confianza puede cargar referencias externas peligrosas, que deben restringirse mediante un XmlReader con una resolución segura o con el procesamiento de DTD deshabilitado. |
CA5367: No serializar los tipos con campos de puntero | Esta regla comprueba si hay una clase serializable con un campo de puntero o una propiedad. Los miembros que no se pueden serializar pueden ser un puntero, como los miembros estáticos o los campos marcados con NonSerializedAttribute. |
CA5368: Establecer ViewStateUserKey para las clases derivadas de la página | Establecer la propiedad ViewStateUserKey puede ayudarle a evitar ataques en la aplicación al permitirle asignar un identificador a la variable de estado de vista para usuarios individuales para que los atacantes no puedan usar la variable para generar un ataque. De lo contrario, habrá vulnerabilidades para la falsificación de solicitudes entre sitios. |
CA5369: Usar XmlReader para deserializar | El procesamiento de esquemas DTD y XML que no son de confianza puede permitir la carga de referencias externas peligrosas, que deben restringirse mediante xmlReader con un solucionador seguro o con el procesamiento de esquemas insertados DTD y XML deshabilitados. |
CA5370: Usar XmlReader para validar el lector | El procesamiento de esquemas DTD y XML que no son de confianza puede permitir la carga de referencias externas peligrosas. Esta carga peligrosa se puede restringir mediante XmlReader con un solucionador seguro o deshabilitando el procesamiento de esquemas DTD y XML en línea. |
CA5371: Usar XmlReader para leer el esquema | El procesamiento de esquemas DTD y XML que no son de confianza puede permitir la carga de referencias externas peligrosas. El uso de un XmlReader con un solucionador seguro o con el procesamiento de esquemas en línea XML y DTD deshabilitado lo restringe. |
CA5372: Usar XmlReader para XPathDocument | El procesamiento de XML de datos que no son de confianza puede cargar referencias externas peligrosas, que se pueden restringir mediante xmlReader con un solucionador seguro o con el procesamiento dtD deshabilitado. |
CA5373: No usar la función de derivación de claves obsoleta | Esta regla detecta la invocación de métodos de derivación de claves débiles System.Security.Cryptography.PasswordDeriveBytes y Rfc2898DeriveBytes.CryptDeriveKey . System.Security.Cryptography.PasswordDeriveBytes usó un algoritmo débil PBKDF1. |
CA5374: No utilizar XslTransform | Esta regla verifica si System.Xml.Xsl.XslTransform está instanciada en el código. System.Xml.Xsl.XslTransform ahora está obsoleto y no debe usarse. |
CA5375: No usar la firma de acceso compartido de la cuenta | Una SAS de cuenta puede delegar el acceso para leer, escribir y eliminar operaciones en contenedores de blobs, tablas, colas y recursos compartidos de archivos que no están permitidos con SAS de servicio. Sin embargo, no admite directivas de nivel de contenedor y tiene menos flexibilidad y control sobre los permisos concedidos. Una vez que los usuarios malintencionados lo obtengan, la cuenta de almacenamiento se verá comprometida fácilmente. |
CA5376: Usar HttpsOnly con SharedAccessProtocol | SAS es información confidencial que no se puede transportar en texto plano en HTTP. |
CA5377: Usar una directiva de acceso de nivel de contenedor | Una directiva de acceso de nivel de contenedor se puede modificar o revocar en cualquier momento. Proporciona mayor flexibilidad y control sobre los permisos concedidos. |
CA5378: No deshabilitar ServicePointManagerSecurityProtocols | Establecer DisableUsingServicePointManagerSecurityProtocols en true limita las conexiones de seguridad de la capa de transporte (TLS) de Windows Communication Framework (WCF) al uso de TLS 1.0. Esa versión de TLS quedará en desuso. |
CA5379: Asegúrese de que el algoritmo de función de derivación de claves sea lo suficientemente fuerte | La clase Rfc2898DeriveBytes usa el algoritmo SHA1 de forma predeterminada. Debe especificar el algoritmo hash que se utilizará en algunas sobrecargas del constructor con SHA256 o superior. Tenga en cuenta que la propiedad HashAlgorithm solo tiene un accesor get y no tiene un modificador overridden . |
CA5380: No agregar certificados al almacén raíz | Esta regla detecta código que agrega un certificado al almacén de certificados de entidades de certificación raíz de confianza. De forma predeterminada, el almacén de certificados de entidades de certificación raíz de confianza se configura con un conjunto de CA públicas que cumplen los requisitos del Programa de certificados raíz de Microsoft. |
CA5381: asegúrese de que los certificados no se agregan al almacén raíz | Esta regla detecta código que puede agregar un certificado al almacén de certificados de entidades de certificación raíz de confianza. De forma predeterminada, el almacén de certificados de entidades de certificación raíz de confianza se configura con un conjunto de entidades de certificación públicas (CA) que cumplen los requisitos del Programa de certificados raíz de Microsoft. |
CA5382: Uso de cookies seguras en ASP.NET Core | Las aplicaciones disponibles a través de HTTPS deben usar cookies seguras, que indican al explorador que la cookie solo debe transmitirse mediante seguridad de la capa de transporte (TLS). |
CA5383: Asegúrese de usar cookies seguras en ASP.NET Core | Las aplicaciones disponibles a través de HTTPS deben usar cookies seguras, que indican al explorador que la cookie solo debe transmitirse mediante seguridad de la capa de transporte (TLS). |
CA5384: No usar el algoritmo de firma digital (DSA) | DSA es un algoritmo de cifrado asimétrico débil. |
CA5385: Usar el algoritmo Rivest–Shamir–Adleman (RSA) con un tamaño de clave suficiente | Una clave RSA menor que 2048 bits es más vulnerable a ataques por fuerza bruta. |
CA5386: Evitar codificar el valor SecurityProtocolType de forma rígida | La seguridad de la capa de transporte (TLS) protege la comunicación entre equipos, normalmente con el protocolo de transferencia de hipertexto seguro (HTTPS). Las versiones de protocolo TLS 1.0 y TLS 1.1 están en desuso, mientras que TLS 1.2 y TLS 1.3 están actuales. En el futuro, TLS 1.2 y TLS 1.3 pueden quedar en desuso. Para asegurarse de que la aplicación sigue siendo segura, evite codificar de forma dura una versión del protocolo y tener como destino al menos .NET Framework v4.7.1. |
CA5387: No usar la función de derivación de claves débiles con un recuento de iteraciones insuficiente | Esta regla comprueba si Rfc2898DeriveBytes generó una clave criptográfica con un recuento de iteración inferior a 100 000. Un mayor número de iteraciones puede ayudar a mitigar los ataques de diccionario que intentan adivinar la clave criptográfica generada. |
CA5388: asegúrese de que hay suficiente recuento de iteraciones cuando se usa una función de derivación de claves débil | Esta regla comprueba si Rfc2898DeriveBytes generó una clave criptográfica con un recuento de iteraciones que puede ser inferior a 100 000. Un mayor número de iteraciones puede ayudar a mitigar los ataques de diccionario que intentan adivinar la clave criptográfica generada. |
CA5389: No agregar la ruta de acceso del elemento de archivo a la ruta de acceso del sistema de archivos de destino | La ruta de acceso del archivo puede ser relativa y puede provocar el acceso al sistema de archivos fuera de la ruta de acceso de destino esperada del sistema de archivos, lo que conduce a cambios de configuración malintencionados y la ejecución remota del código a través de la técnica lay-and-wait. |
CA5390: No codificar la clave de cifrado de forma rígida | Para que un algoritmo simétrico se realice correctamente, la clave secreta solo debe conocerse al remitente y al receptor. Cuando una clave está codificada de forma rígida, se detecta fácilmente. Incluso con archivos binarios compilados, es fácil que los usuarios malintencionados lo extraigan. Una vez que la clave privada está en peligro, el texto cifrado se puede descifrar directamente y ya no está protegido. |
CA5391: Usar tokens antifalsificación en controladores MVC de ASP.NET Core | El control de una solicitud POST , PUT , PATCH o DELETE sin validar un token antifalsificación puede ser vulnerable a ataques de falsificación de solicitud entre sitios. Un ataque de falsificación de solicitudes entre sitios puede enviar solicitudes malintencionadas desde un usuario autenticado al controlador de MVC de ASP.NET Core. |
CA5392: Usar el atributo DefaultDllImportSearchPaths para P/Invokes | De forma predeterminada, las funciones P/Invoke que usan DllImportAttribute sondean varios directorios, incluido el directorio de trabajo actual para cargar la biblioteca. Esto puede ser un problema de seguridad para determinadas aplicaciones, lo que conduce al secuestro de DLL. |
CA5393: No utilice el valor DllImportSearchPath inseguro | Podría haber un archivo DLL malintencionado en los directorios de búsqueda de DLL predeterminados y el directorio de ensamblaje. O bien, dependiendo de dónde se ejecute la aplicación, podría haber un archivo DLL malintencionado en el directorio de la aplicación. |
CA5394: No usar aleatoriedad insegura | El uso de un generador de números pseudoaleatorios no cifrados puede permitir que un atacante prediga qué valor confidencial de seguridad se generará. |
CA5395: Falta el atributo HttpVerb en los métodos de acción | Todos los métodos de acción que crean, editan, eliminan o modifican datos deben protegerse con el atributo antiforgery de ataques de falsificación de solicitudes entre sitios. La realización de una operación GET debe ser una operación segura que no tenga efectos secundarios y no modifique los datos persistentes. |
CA5396: Establecer HttpOnly en true para HttpCookie | Como medida de defensa en profundidad, asegúrese de que las cookies HTTP confidenciales de seguridad se marcan como HttpOnly. Esto indica que los exploradores web deben impedir que los scripts accedan a las cookies. Los scripts malintencionados insertados son una forma común de robar cookies. |
CA5397: No usar valores SslProtocols en desuso | La seguridad de la capa de transporte (TLS) protege la comunicación entre equipos, normalmente con el protocolo de transferencia de hipertexto seguro (HTTPS). Las versiones de protocolo anteriores de TLS son menos seguras que TLS 1.2 y TLS 1.3 y tienen más probabilidades de tener nuevas vulnerabilidades. Evite las versiones de protocolo anteriores para minimizar el riesgo. |
CA5398: Evitar valores SslProtocols codificados de forma rígida | La seguridad de la capa de transporte (TLS) protege la comunicación entre equipos, normalmente con el protocolo de transferencia de hipertexto seguro (HTTPS). Las versiones de protocolo TLS 1.0 y TLS 1.1 están en desuso, mientras que TLS 1.2 y TLS 1.3 están actuales. En el futuro, TLS 1.2 y TLS 1.3 pueden quedar en desuso. Para asegurarse de que la aplicación sigue siendo segura, evite codificar de forma dura una versión del protocolo. |
CA5399: Deshabilitar definitivamente la comprobación de la lista de revocación de certificados HttpClient | Ya no es de confianza un certificado revocado. Los atacantes podrían usarlos pasando algunos datos malintencionados o robando datos confidenciales en la comunicación HTTPS. |
CA5400: asegúrese de que no se desactive la comprobación de la lista de revocación de certificados de HttpClient | Ya no es de confianza un certificado revocado. Los atacantes podrían usarlos pasando algunos datos malintencionados o robando datos confidenciales en la comunicación HTTPS. |
CA5401: No usar CreateEncryptor con IV no predeterminado | El cifrado simétrico siempre debe usar un vector de inicialización no repetible para evitar ataques de diccionario. |
CA5402: Usar CreateEncryptor con el vector de inicialización predeterminado | El cifrado simétrico siempre debe usar un vector de inicialización no repetible para evitar ataques de diccionario. |
CA5403: No codificar de forma rígida el certificado | El parámetro data o rawData de un constructor de X509Certificate o X509Certificate2 está codificado de forma rígida. |
CA5404: No deshabilite las comprobaciones de validación de tokens | TokenValidationParameters propiedades que controlan la validación de tokens no deben establecerse en false . |
CA5405: No omitir siempre la validación de tokens de omisión en delegados | La devolución de llamada asignada a AudienceValidator o LifetimeValidator siempre devuelve true . |
Colaborar con nosotros en GitHub
El origen de este contenido se puede encontrar en GitHub, donde también puede crear y revisar problemas y solicitudes de incorporación de cambios. Para más información, consulte nuestra guía para colaboradores.