Esta seção contém tudo o que fica fora do código-fonte, porém que é essencial para a segurança do produto que está sendo criado. Como os problemas tratados neste domínio não são diretamente relacionados com o código-fonte, nós o separamos dos demais domínios.
debuggable
da tag <application>
define se os binários compilados devem incluir informações de depuração.None
desativa todo o processo de validação do certificado, o que expõe a aplicação a ataques Man-in-the-Middle. Esse modo nunca deve ser usado em ambientes de produção.debug
da tag <compilation>
define se os binários compilados devem incluir informações de depuração.
...
<configuration>
<system.web>
<authentication>
<forms
timeout="60" />
</authentication>
</system.web>
</configuration>
...
ChainTrust
e oferece o nível máximo de garantia de que o certificado é válido. Por padrão, todos os certificados são validados usando o ChainTrust
.PeerTrust
ou PeerOrChainTrust
. Essas configurações não devem ser usadas em ambientes de produção porque reduzem significativamente o nível de segurança concedido pelos certificados.cacheRolesInCookie
do elemento configuration/system.web/authentication/forms
em web.config
está configurado como true
, as funções de cada usuário são armazenadas em cache em um cookie. Se essas informações forem armazenadas em texto simples, qualquer pessoa com acesso às máquinas utilizadas para interagir com o aplicativo terá acesso às informações armazenadas no cookie. Pior ainda, se os invasores tiverem permissão para modificar arbitrariamente os dados armazenados nos cookies, eles podem falsificar as informações fornecidas ao aplicativo e, possivelmente, alterar o comportamento a seu favor.mode
da tag <customErrors>
define se páginas de erro personalizadas ou padrão são usadas.ViewState
, FormsAuth cookies
e URLs ScriptResource.axd
e passa esses valores para o aplicativo para processamento posterior. No entanto, essa funcionalidade pode ser modificada usando a configuração aspnet:UseLegacyEncryption
para desativar a verificação de assinatura criptográfica antes de descriptografar cargas úteis. Isso pode permitir que um cliente mal-intencionado descriptografe, falsifique ou adultere dados criptografados.aspnet:UseLegacyEncryption
está definido como true
.
...
<appSettings>
<add key="aspnet:UseLegacyEncryption" value="true" />
</appSettings>
...
<credentials>
no arquivo web.config
de um aplicativo ASP.NET, que suporta texto simples e formatos de senha MD5 e SHA1.web.config
armazena incorretamente suas senhas em texto simples.
<configuration>
<system.web>
<authentication>
<forms protection="All">
<credentials passwordFormat="Clear">
<user name="user1" password="my_password"/>
<user name="user2" password="my_password1"/>
</credentials>
</forms>
</authentication>
</system.web>
</configuration>
passwordFormat
do elemento configuration/system.web/authentication/forms/credentials
. Os valores possíveis para este atributo são:Clear
- indica que a senha está armazenada em texto simples (menos seguro)MD5
- indica que o hash MD5 da senha está armazenadoSHA1
- indica que o hash SHA1 da senha está armazenado (mais seguro)cacheRolesInCookie
do elemento configuration/system.web/authentication/forms
em web.config
está configurado como true
, as funções de cada usuário são armazenadas em cache em um cookie. Se essas informações forem armazenadas em texto simples, qualquer pessoa com acesso às máquinas utilizadas para interagir com o aplicativo terá acesso às informações armazenadas no cookie. Pior ainda, se os invasores tiverem permissão para modificar arbitrariamente os dados armazenados nos cookies, eles podem falsificar as informações fornecidas ao aplicativo e, possivelmente, alterar o comportamento a seu favor.true
ou UseUri
, o aplicativo não usa cookies, independentemente de o navegador ou dispositivo oferecer suporte a cookies. Quando o valor do atributo está definido como AutoDetect
ou UseDeviceProfile
, os cookies não são usados dependendo da configuração do navegador ou dispositivo solicitante.Trace
da diretiva <page>
como true
ou no nível do aplicativo, adicionando um elemento trace
no arquivo web.config
e definindo seu atributo enabled
como true
.<credentials>
no arquivo web.config
de um aplicativo ASP.NET, que suporta texto simples e formatos de senha MD5 e SHA1.web.config
armazena incorretamente suas senhas em texto simples.
<configuration>
<system.web>
<authentication>
<forms protection="All">
<credentials passwordFormat="Clear">
<user name="user1" password="my_password"/>
<user name="user2" password="my_password1"/>
</credentials>
</forms>
</authentication>
</system.web>
</configuration>
passwordFormat
do elemento configuration/system.web/authentication/forms/credentials
. Os valores possíveis para este atributo são:Clear
- indica que a senha está armazenada em texto simples (menos seguro)MD5
- indica que o hash MD5 da senha está armazenadoSHA1
- indica que o hash SHA1 da senha está armazenado (mais seguro)