Regras de segurança
As regras de segurança suportam bibliotecas e aplicações mais seguras. Estas regras ajudam a evitar falhas de segurança no seu programa. Se você desativar qualquer uma dessas regras, você deve marcar claramente o motivo no código e também informar o oficial de segurança designado para o seu projeto de desenvolvimento.
Nesta secção
Regra | Description |
---|---|
CA2100: Revisar consultas SQL em busca de vulnerabilidades de segurança | Um método define a propriedade System.Data.IDbCommand.CommandText usando uma cadeia de caracteres que é criada a partir de um argumento de cadeia de caracteres para o método. Esta regra pressupõe que o argumento string contém entrada do usuário. Uma cadeia de caracteres de comando SQL criada a partir da entrada do usuário é vulnerável a ataques de injeção de SQL. |
CA2109: Revisar manipuladores de eventos visíveis | Foi detetado um método de manipulação de eventos público ou protegido. Os métodos de manipulação de eventos não devem ser expostos, a menos que seja absolutamente necessário. |
CA2119: Métodos de vedação que satisfazem interfaces privadas | Um tipo público hereditário fornece uma implementação de método substituível de uma interface interna (Friend no Visual Basic). Para corrigir uma violação dessa regra, impeça que o método seja substituído fora do assembly. |
CA2153: Evite lidar com exceções de estado corrompido | Exceções de estado corrompidas (CSE) indicam que existe corrupção de memória em seu processo. Detetá-los em vez de permitir que o processo falhe pode levar a vulnerabilidades de segurança se um invasor puder colocar uma exploração na região de memória corrompida. |
CA2300: Não use o desserializador inseguro BinaryFormatter | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2301: Não chame BinaryFormatter.Deserialize sem primeiro definir BinaryFormatter.Binder | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2302: Verifique se BinaryFormatter.Binder está definido antes de chamar BinaryFormatter.Deserialize | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2305: Não use o desserializador inseguro LosFormatter | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2310: Não use o desserializador inseguro NetDataContractSerializer | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2311: Não desserialize sem primeiro definir NetDataContractSerializer.Binder | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2312: Verifique se NetDataContractSerializer.Binder está definido antes de desserializar | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2315: Não use o desserializador inseguro ObjectStateFormatter | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2321: Não desserializar com JavaScriptSerializer usando um SimpleTypeResolver | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2322: Verifique se JavaScriptSerializer não é inicializado com SimpleTypeResolver antes de desserializar | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2326: Não use valores TypeNameHandling diferentes de Nenhum | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2327: Não use JsonSerializerSettings inseguro | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2328: Verifique se JsonSerializerSettings é seguro | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2329: Não desserializar com JsonSerializer usando uma configuração insegura | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2330: Certifique-se de que JsonSerializer tenha uma configuração segura ao desserializar | Desserializadores inseguros são vulneráveis ao desserializar dados não confiáveis. Um invasor pode modificar os dados serializados para incluir tipos inesperados para injetar objetos com efeitos colaterais mal-intencionados. |
CA2350: Verifique se a entrada de DataTable.ReadXml() é confiável | Ao desserializar uma entrada não confiável, um invasor pode criar uma DataTable entrada mal-intencionada para executar um ataque de negação de serviço. Pode haver vulnerabilidades desconhecidas de execução remota de código. |
CA2351: Verifique se a entrada de DataSet.ReadXml() é confiável | Ao desserializar uma entrada não confiável, um invasor pode criar uma DataSet entrada mal-intencionada para executar um ataque de negação de serviço. Pode haver vulnerabilidades desconhecidas de execução remota de código. |
CA2352: DataSet ou DataTable não seguros em tipo serializável podem ser vulneráveis a ataques de execução remota de código | Uma classe ou struct marcada com SerializableAttribute contém um campo ou DataTable propriedade e não tem um DataSetGeneratedCodeAttributearquivo . |
CA2353: DataSet ou DataTable não seguro no tipo serializável | Uma classe ou struct marcada com um atributo de serialização XML ou um atributo de contrato de dados contém um DataSet campo ou DataTable propriedade. |
CA2354: DataSet ou DataTable não seguros no gráfico de objetos desserializados podem ser vulneráveis a ataques de execução remota de código | Desserialização com um serializado, e o gráfico de objeto do tipo transmitido pode incluir um System.Runtime.Serialization.IFormatterDataSet ou DataTable. |
CA2355: DataSet ou DataTable não seguro no gráfico de objeto desserializado | Desserialização quando o gráfico de objeto do tipo transmitido ou especificado pode incluir um DataSet ou DataTable. |
CA2356: DataSet ou DataTable não seguro no gráfico de objeto desserializado da Web | Um método com um ou tem um System.Web.Services.WebMethodAttribute parâmetro que pode fazer referência a ou DataSetDataTable.System.ServiceModel.OperationContractAttribute |
CA2361: Verifique se a classe gerada automaticamente que contém DataSet.ReadXml() não é usada com dados não confiáveis | Ao desserializar uma entrada não confiável, um invasor pode criar uma DataSet entrada mal-intencionada para executar um ataque de negação de serviço. Pode haver vulnerabilidades desconhecidas de execução remota de código. |
CA2362: DataSet ou DataTable não seguros no tipo serializável gerado automaticamente podem ser vulneráveis a ataques de execução remota de código | Ao desserializar entradas não confiáveis com BinaryFormatter e o gráfico de objeto desserializado contém um ou DataTable, um invasor pode criar uma carga mal-intencionada para executar um DataSet ataque de execução remota de código. |
CA3001: Revisar o código para vulnerabilidades de injeção de SQL | Ao trabalhar com entrada não confiável e comandos SQL, esteja atento aos ataques de injeção de SQL. Um ataque de injeção de SQL pode executar comandos SQL mal-intencionados, comprometendo a segurança e a integridade do seu aplicativo. |
CA3002: Revisar o código para vulnerabilidades de XSS | Ao trabalhar com entradas não confiáveis de solicitações da Web, esteja atento aos ataques de script entre sites (XSS). Um ataque XSS injeta entrada não confiável na saída HTML bruta, permitindo que o invasor execute scripts mal-intencionados ou modifique maliciosamente o conteúdo em sua página da Web. |
CA3003: Revise o código para vulnerabilidades de injeção de caminho de arquivo | Ao trabalhar com entradas não confiáveis de solicitações da Web, esteja atento ao uso de entradas controladas pelo usuário ao especificar caminhos para arquivos. |
CA3004: Revisar o código para vulnerabilidades de divulgação de informações | A divulgação de informações de exceção dá aos invasores informações sobre os internos do seu aplicativo, o que pode ajudar os invasores a encontrar outras vulnerabilidades para explorar. |
CA3006: Revise o código para vulnerabilidades de injeção de comando de processo | Ao trabalhar com informações não confiáveis, esteja atento aos ataques de injeção de comando. Um ataque de injeção de comando pode executar comandos maliciosos no sistema operacional subjacente, comprometendo a segurança e a integridade do seu servidor. |
CA3007: Revisar o código para vulnerabilidades de redirecionamento aberto | Ao trabalhar com informações não confiáveis, esteja atento às vulnerabilidades de redirecionamento abertas. Um invasor pode explorar uma vulnerabilidade de redirecionamento aberta para usar seu site para dar a aparência de um URL legítimo, mas redirecionar um visitante desavisado para um phishing ou outra página da Web mal-intencionada. |
CA3008: Revisar o código para vulnerabilidades de injeção XPath | Ao trabalhar com entradas não confiáveis, esteja atento aos ataques de injeção XPath. A construção de consultas XPath usando entradas não confiáveis pode permitir que um invasor manipule maliciosamente a consulta para retornar um resultado não intencional e, possivelmente, divulgue o conteúdo do XML consultado. |
CA3009: Revisar o código para vulnerabilidades de injeção de XML | Ao trabalhar com entradas não confiáveis, esteja atento aos ataques de injeção de XML. |
CA3010: Revisar o código para vulnerabilidades de injeção de XAML | Ao trabalhar com entradas não confiáveis, esteja atento aos ataques de injeção de XAML. XAML é uma linguagem de marcação que representa diretamente a instanciação e a execução de objetos. Isso significa que os elementos criados em XAML podem interagir com recursos do sistema (por exemplo, acesso à rede e E/S do sistema de arquivos). |
CA3011: Revise o código para vulnerabilidades de injeção de DLL | Ao trabalhar com entradas não confiáveis, esteja atento ao carregamento de código não confiável. Se o seu aplicativo Web carregar código não confiável, um invasor poderá injetar DLLs mal-intencionadas em seu processo e executar código mal-intencionado. |
CA3012: Revisar o código para vulnerabilidades de injeção de regex | Ao trabalhar com entradas não confiáveis, esteja atento aos ataques de injeção de regex. Um invasor pode usar a injeção de regex para modificar maliciosamente uma expressão regular, para fazer com que o regex corresponda a resultados não intencionais ou para fazer com que o regex consuma CPU excessiva, resultando em um ataque de negação de serviço. |
CA3061: Não adicionar esquema por URL | Não use a sobrecarga insegura do método Add porque ele pode causar referências externas perigosas. |
CA3075: Processamento DTD inseguro | Se você usar instâncias inseguras de DTDProcessing ou fazer referência a fontes de entidades externas, o analisador poderá aceitar entradas não confiáveis e divulgar informações confidenciais a invasores. |
CA3076: Execução de script XSLT insegura | Se você executar XSLT (Extensible StyleSheet Language Transformations) em aplicativos .NET de forma insegura, o processador poderá resolver referências de URI não confiáveis que podem divulgar informações confidenciais a invasores, levando a ataques de negação de serviço e entre sites. |
CA3077: Processamento não seguro em design de API, documento XML e leitor de texto XML | Ao projetar uma API derivada de XMLDocument e XMLTextReader, esteja atento ao DtdProcessing. O uso de instâncias inseguras de DTDProcessing ao referenciar ou resolver fontes de entidades externas ou definir valores inseguros no XML pode levar à divulgação de informações. |
CA3147: Marcar manipuladores de verbos com ValidateAntiForgeryToken | Ao projetar um controlador MVC ASP.NET, esteja atento aos ataques de falsificação de solicitação entre sites. Um ataque de falsificação de solicitação entre sites pode enviar solicitações maliciosas de um usuário autenticado para seu controlador MVC ASP.NET. |
CA5350: Não use algoritmos criptográficos fracos | Algoritmos de encriptação fracos e funções de hashing são utilizados atualmente por uma série de razões, mas não devem ser utilizados para garantir a confidencialidade ou integridade dos dados que protegem. Esta regra é acionada quando encontra algoritmos TripleDES, SHA1 ou RIPEMD160 no código. |
CA5351: Não use algoritmos criptográficos quebrados | Algoritmos criptográficos quebrados não são considerados seguros e seu uso deve ser fortemente desencorajado. Esta regra é acionada quando encontra o algoritmo de hash MD5 ou os algoritmos de encriptação DES ou RC2 no código. |
CA5358: Não use modos de codificação não seguros | Não use modos de codificação não seguros |
CA5359: Não desative a validação de certificado | Um certificado pode ajudar a autenticar a identidade do servidor. Os clientes devem validar o certificado do servidor para garantir que as solicitações sejam enviadas ao servidor pretendido. Se o ServerCertificateValidationCallback sempre retornar true , qualquer certificado passará pela validação. |
CA5360: Não chame métodos perigosos na desserialização | A desserialização insegura é uma vulnerabilidade que ocorre quando dados não confiáveis são usados para abusar da lógica de um aplicativo, infligir um ataque de negação de serviço (DoS) ou até mesmo executar código arbitrário ao ser desserializado. É frequentemente possível que usuários mal-intencionados abusem desses recursos de desserialização quando o aplicativo está desserializando dados não confiáveis que estão sob seu controle. Especificamente, invoque métodos perigosos no processo de desserialização. Ataques bem-sucedidos de desserialização insegura podem permitir que um invasor execute ataques como ataques DoS, desvios de autenticação e execução remota de código. |
CA5361: Não desative o uso SChannel de criptografia forte | Configuração Switch.System.Net.DontEnableSchUseStrongCrypto para true enfraquecer a criptografia usada em conexões TLS (Transport Layer Security) de saída. Uma criptografia mais fraca pode comprometer a confidencialidade da comunicação entre seu aplicativo e o servidor, tornando mais fácil para os invasores espionar dados confidenciais. |
CA5362: Ciclo de referência potencial no gráfico de objeto desserializado | Se desserializar dados não confiáveis, qualquer código que processe o gráfico de objeto desserializado precisa lidar com ciclos de referência sem entrar em loops infinitos. Isso inclui o código que faz parte de um retorno de chamada de desserialização e o código que processa o gráfico de objeto após a conclusão da desserialização. Caso contrário, um invasor pode executar um ataque de negação de serviço com dados mal-intencionados contendo um ciclo de referência. |
CA5363: Não desative a validação de solicitação | A validação de solicitação é um recurso do ASP.NET que examina solicitações HTTP e determina se elas contêm conteúdo potencialmente perigoso que pode levar a ataques de injeção, incluindo scripts entre sites. |
CA5364: Não use protocolos de segurança preteridos | Transport Layer Security (TLS) protege a comunicação entre computadores, mais comumente com HTTPS (Hypertext Transfer Protocol Secure). As versões de protocolo mais antigas do TLS são menos seguras do que o TLS 1.2 e o TLS 1.3 e são mais propensas a ter novas vulnerabilidades. Evite versões de protocolo mais antigas para minimizar o risco. |
CA5365: Não desative a verificação de cabeçalho HTTP | A verificação de cabeçalho HTTP permite a codificação do retorno de carro e dos caracteres de nova linha, \r e \n, encontrados nos cabeçalhos de resposta. Essa codificação pode ajudar a evitar ataques de injeção que exploram um aplicativo que ecoa dados não confiáveis contidos pelo cabeçalho. |
CA5366: Usar XmlReader para DataSet Read XML | Usar um para ler XML com dados não confiáveis pode carregar referências externas perigosas, que devem ser restringidas usando um com um DataSetXmlReader resolvedor seguro ou com o processamento DTD desativado. |
CA5367: Não serializar tipos com campos de ponteiro | Esta regra verifica se há uma classe serializável com um campo de ponteiro ou propriedade. Os membros que não podem ser serializados podem ser um ponteiro, como membros estáticos ou campos marcados com NonSerializedAttribute. |
CA5368: Definir ViewStateUserKey para classes derivadas da página | Definir a propriedade pode ajudá-lo a evitar ataques ao seu aplicativo, permitindo que você atribua um identificador à variável de estado de exibição para usuários individuais para que os invasores não possam usar a ViewStateUserKey variável para gerar um ataque. Caso contrário, haverá vulnerabilidades à falsificação de pedidos entre sites. |
CA5369: Usar XmlReader para desserializar | O processamento de esquemas DTD e XML não confiáveis pode permitir o carregamento de referências externas perigosas, que devem ser restritas usando um XmlReader com um resolvedor seguro ou com o processamento de esquema embutido DTD e XML desabilitado. |
CA5370: Usar XmlReader para validar o leitor | O processamento de esquemas DTD e XML não confiáveis pode permitir o carregamento de referências externas perigosas. Esse carregamento perigoso pode ser restringido usando um XmlReader com um resolvedor seguro ou com o processamento de esquema embutido DTD e XML desativado. |
CA5371: Usar XmlReader para leitura de esquema | O processamento de esquemas DTD e XML não confiáveis pode permitir o carregamento de referências externas perigosas. Usar um XmlReader com um resolvedor seguro ou com DTD e XML inline schema processing desabilitado restringe isso. |
CA5372: Usar XmlReader para XPathDocument | O processamento de XML a partir de dados não confiáveis pode carregar referências externas perigosas, que podem ser restringidas usando um XmlReader com um resolvedor seguro ou com o processamento DTD desabilitado. |
CA5373: Não use a função de derivação de chave obsoleta | Esta regra deteta a invocação de métodos System.Security.Cryptography.PasswordDeriveBytes de derivação de chave fraca e Rfc2898DeriveBytes.CryptDeriveKey . System.Security.Cryptography.PasswordDeriveBytes usou um algoritmo fraco PBKDF1. |
CA5374: Não use XslTransform | Esta regra verifica se System.Xml.Xsl.XslTransform está instanciada no código. System.Xml.Xsl.XslTransform está agora obsoleta e não deve ser usada. |
CA5375: Não use assinatura de acesso compartilhado de conta | Uma SAS de conta pode delegar acesso a operações de leitura, gravação e exclusão em contêineres de blob, tabelas, filas e compartilhamentos de arquivos que não são permitidos com uma SAS de serviço. No entanto, ele não oferece suporte a políticas no nível de contêiner e tem menos flexibilidade e controle sobre as permissões concedidas. Uma vez que os usuários mal-intencionados obtê-lo, sua conta de armazenamento será comprometida facilmente. |
CA5376: Usar SharedAccessProtocol HttpsOnly | SAS são dados confidenciais que não podem ser transportados em texto simples em HTTP. |
CA5377: Usar política de acesso em nível de contêiner | Uma política de acesso no nível do contêiner pode ser modificada ou revogada a qualquer momento. Ele fornece maior flexibilidade e controle sobre as permissões que são concedidas. |
CA5378: Não desative ServicePointManagerSecurityProtocols | Configuração DisableUsingServicePointManagerSecurityProtocols para true limitar as conexões TLS (Transport Layer Security) do Windows Communication Framework (WCF) ao uso do TLS 1.0. Essa versão do TLS será preterida. |
CA5379: Certifique-se de que o algoritmo da função de derivação de chave é suficientemente forte | O Rfc2898DeriveBytes padrão da classe é usar o SHA1 algoritmo. Você deve especificar o algoritmo de hash a ser usado em algumas sobrecargas do construtor com SHA256 ou superior. Observe que HashAlgorithm a propriedade só tem um acessador e não tem um get overridden modificador. |
CA5380: Não adicione certificados ao armazenamento raiz | Esta regra deteta o código que adiciona um certificado ao armazenamento de certificados das Autoridades de Certificação Raiz Confiáveis. Por padrão, o armazenamento de certificados de Autoridades de Certificação Raiz Confiáveis é configurado com um conjunto de CAs públicas que atendeu aos requisitos do Programa de Certificados Raiz da Microsoft. |
CA5381: Verifique se os certificados não são adicionados ao armazenamento raiz | Esta regra deteta o código que potencialmente adiciona um certificado ao armazenamento de certificados das Autoridades de Certificação Raiz Confiáveis. Por padrão, o armazenamento de certificados de Autoridades de Certificação Raiz Confiáveis é configurado com um conjunto de autoridades de certificação (CAs) públicas que atenderam aos requisitos do Programa de Certificados Raiz da Microsoft. |
CA5382: Use cookies seguros no ASP.NET Core | Os aplicativos disponíveis por HTTPS devem usar cookies seguros, que indicam ao navegador que o cookie só deve ser transmitido usando Transport Layer Security (TLS). |
CA5383: Garantir o uso de cookies seguros no ASP.NET Core | Os aplicativos disponíveis por HTTPS devem usar cookies seguros, que indicam ao navegador que o cookie só deve ser transmitido usando Transport Layer Security (TLS). |
CA5384: Não use algoritmo de assinatura digital (DSA) | DSA é um algoritmo de encriptação assimétrica fraca. |
CA5385: Use o algoritmo Rivest–Shamir–Adleman (RSA) com tamanho de chave suficiente | Uma chave RSA menor que 2048 bits é mais vulnerável a ataques de força bruta. |
CA5386: Evite codificar o valor SecurityProtocolType | Transport Layer Security (TLS) protege a comunicação entre computadores, mais comumente com HTTPS (Hypertext Transfer Protocol Secure). As versões de protocolo TLS 1.0 e TLS 1.1 foram preteridas, enquanto TLS 1.2 e TLS 1.3 são atuais. No futuro, o TLS 1.2 e o TLS 1.3 poderão ser preteridos. Para garantir que seu aplicativo permaneça seguro, evite codificar uma versão do protocolo e direcione pelo menos o .NET Framework v4.7.1. |
CA5387: Não use a função de derivação de tecla fraca com contagem de iteração insuficiente | Esta regra verifica se uma chave criptográfica foi gerada por Rfc2898DeriveBytes com uma contagem de iteração inferior a 100.000. Uma contagem de iteração mais alta pode ajudar a mitigar ataques de dicionário que tentam adivinhar a chave criptográfica gerada. |
CA5388: Garanta uma contagem de iteração suficiente ao usar a função de derivação de chave fraca | Esta regra verifica se uma chave criptográfica foi gerada por Rfc2898DeriveBytes uma contagem de iteração que pode ser inferior a 100.000. Uma contagem de iteração mais alta pode ajudar a mitigar ataques de dicionário que tentam adivinhar a chave criptográfica gerada. |
CA5389: Não adicione o caminho do item de arquivo ao caminho do sistema de arquivos de destino | O caminho do arquivo pode ser relativo e pode levar ao acesso ao sistema de arquivos fora do caminho de destino esperado do sistema de arquivos, levando a alterações maliciosas de configuração e execução remota de código por meio da técnica lay-and-wait. |
CA5390: Não codificar chave de criptografia | Para que um algoritmo simétrico seja bem-sucedido, a chave secreta deve ser conhecida apenas pelo emissor e pelo recetor. Quando uma chave é codificada, ela é facilmente descoberta. Mesmo com binários compilados, é fácil para usuários mal-intencionados extraí-lo. Uma vez que a chave privada é comprometida, o texto cifrado pode ser descriptografado diretamente e não é mais protegido. |
CA5391: Use tokens antifalsificação em controladores MVC ASP.NET Core | Lidar com um , , PATCH PUT ou DELETE solicitação sem validar um POST token antifalsificação pode ser vulnerável a ataques de falsificação de solicitação entre sites. Um ataque de falsificação de solicitação entre sites pode enviar solicitações maliciosas de um usuário autenticado para seu controlador MVC ASP.NET Core. |
CA5392: Usar o atributo DefaultDllImportSearchPaths para P/Invokes | Por padrão, P/Invoke funciona usando DllImportAttribute sondar vários diretórios, incluindo o diretório de trabalho atual para a biblioteca carregar. Isso pode ser um problema de segurança para determinados aplicativos, levando ao sequestro de DLL. |
CA5393: Não use o valor DllImportSearchPath não seguro | Pode haver uma DLL mal-intencionada nos diretórios de pesquisa de DLL padrão e diretórios de assembly. Ou, dependendo de onde seu aplicativo é executado, pode haver uma DLL mal-intencionada no diretório do aplicativo. |
CA5394: Não use aleatoriedade insegura | O uso de um gerador de números pseudoaleatórios criptograficamente fraco pode permitir que um invasor preveja qual valor sensível à segurança será gerado. |
CA5395: Atributo Miss HttpVerb para métodos de ação | Todos os métodos de ação que criam, editam, excluem ou modificam dados precisam ser protegidos com o atributo antifalsificry contra ataques de falsificação de solicitação entre sites. Executar uma operação GET deve ser uma operação segura que não tenha efeitos colaterais e não modifique seus dados persistentes. |
CA5396: Definir HttpOnly como true para HttpCookie | Como medida de defesa em profundidade, certifique-se de que os cookies HTTP sensíveis à segurança sejam marcados como HttpOnly. Isso indica que os navegadores da Web devem impedir que scripts acessem os cookies. Os scripts maliciosos injetados são uma forma comum de roubar cookies. |
CA5397: Não use valores SslProtocols preteridos | Transport Layer Security (TLS) protege a comunicação entre computadores, mais comumente com HTTPS (Hypertext Transfer Protocol Secure). As versões de protocolo mais antigas do TLS são menos seguras do que o TLS 1.2 e o TLS 1.3 e são mais propensas a ter novas vulnerabilidades. Evite versões de protocolo mais antigas para minimizar o risco. |
CA5398: Evite valores SslProtocols codificados | Transport Layer Security (TLS) protege a comunicação entre computadores, mais comumente com HTTPS (Hypertext Transfer Protocol Secure). As versões de protocolo TLS 1.0 e TLS 1.1 foram preteridas, enquanto TLS 1.2 e TLS 1.3 são atuais. No futuro, o TLS 1.2 e o TLS 1.3 poderão ser preteridos. Para garantir que seu aplicativo permaneça seguro, evite codificar uma versão do protocolo. |
CA5399: Definitivamente desativar a verificação da lista de revogação de certificado HttpClient | Um certificado revogado não é mais confiável. Ele pode ser usado por invasores que passam alguns dados maliciosos ou roubam dados confidenciais na comunicação HTTPS. |
CA5400: Verifique se a verificação da lista de revogação de certificados HttpClient não está desabilitada | Um certificado revogado não é mais confiável. Ele pode ser usado por invasores que passam alguns dados maliciosos ou roubam dados confidenciais na comunicação HTTPS. |
CA5401: Não use CreateEncryptor com IV não padrão | A criptografia simétrica deve sempre usar um vetor de inicialização não repetível para evitar ataques de dicionário. |
CA5402: Use CreateEncryptor com o IV padrão | A criptografia simétrica deve sempre usar um vetor de inicialização não repetível para evitar ataques de dicionário. |
CA5403: Não codificar certificado | O data parâmetro ou de um X509Certificate construtor ou rawData X509Certificate2 é codificado. |
CA5404: Não desative as verificações de validação de token | TokenValidationParameters As propriedades que controlam a validação de token não devem ser definidas como false . |
CA5405: Nem sempre ignore a validação de token em delegados | O retorno de chamada atribuído ou AudienceValidatorLifetimeValidator sempre retorna.true |
Colabore connosco no GitHub
A origem deste conteúdo pode ser encontrada no GitHub, onde também pode criar e rever problemas e pedidos Pull. Para mais informações, consulte o nosso guia do contribuidor.