Esta sección incluye todo lo que está fuera del código fuente pero aun así es importante para la seguridad del producto que se está creando. Dado que todas las cuestiones incluidas en esta sección no están directamente relacionadas con el código fuente, las hemos separado de las demás secciones.
debuggable
de la etiqueta <application>
define si los binarios compilados deben incluir información de depuración.None
desactiva todo el proceso de validación de la certificación, lo que expone la aplicación a ataques de tipo "man-in-the-middle". Este modo no debe utilizarse en entornos de producción.debug
de la etiqueta <compilation>
define si los binarios compilados deben incluir información de depuración.
...
<configuration>
<system.web>
<authentication>
<forms
timeout="60" />
</authentication>
</system.web>
</configuration>
...
ChainTrust
y proporciona el máximo nivel de seguridad de que el certificado es válido. De forma predeterminada, todos los certificados se validan mediante ChainTrust
.PeerTrust
o PeerOrChainTrust
. Estas configuraciones no deben usarse en entornos de producción porque reducen significativamente el nivel de seguridad otorgado por los certificados.cacheRolesInCookie
del elemento configuration/system.web/authentication/forms
enweb.config
se establece entrue
, las funciones de cada usuario se almacenan en caché en una cookie. Si esta información se almacena en texto sin formato, cualquier persona con acceso a las máquinas utilizadas para interactuar con la aplicación tendrá acceso a la información almacenada en la cookie. Peor aún, si pueden modificar arbitrariamente los datos almacenados en las cookies, los atacantes también pueden falsificar la información proporcionada a la aplicación y potencialmente alterar su comportamiento en su beneficio.mode
de la etiqueta <customErrors>
define si se utilizan páginas de error personalizadas o predeterminadas.ViewState
,FormsAuth cookies
y ScriptResource.axd
y pasa esos valores a la aplicación para procesarlos posteriormente. Sin embargo, esta funcionalidad se puede modificar utilizando el parámetro aspnet:UseLegacyEncryption
para deshabilitar la comprobación de la firma criptográfica antes de descifrar las cargas útiles. Esta alteración puede permitir que un cliente malintencionado descifre, falsifique o altere de otro modo los datos cifrados.aspnet:UseLegacyEncryption
está definido como true
.
...
<appSettings>
<add key="aspnet:UseLegacyEncryption" value="true" />
</appSettings>
...
<credentials>
en el archivo web.config
para una aplicación ASP.NET, que admite texto sin formato, formatos de contraseña MD5 y SHA1.web.config
almacena incorrectamente sus contraseñas en texto sin formato.
<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
del elemento configuration/system.web/authentication/forms/credentials
. Los posibles valores de este atributo son:Clear
- indica que la contraseña se almacena en texto sin formato (menos segura)MD5
- indica que el hash MD5 de la contraseña está almacenadoSHA1
- indica que el hash SHA1 de la contraseña está almacenado (más seguro)cacheRolesInCookie
del elemento configuration/system.web/authentication/forms
enweb.config
se establece entrue
, las funciones de cada usuario se almacenan en caché en una cookie. Si esta información se almacena en texto sin formato, cualquier persona con acceso a las máquinas utilizadas para interactuar con la aplicación tendrá acceso a la información almacenada en la cookie. Peor aún, si pueden modificar arbitrariamente los datos almacenados en las cookies, los atacantes también pueden falsificar la información proporcionada a la aplicación y potencialmente alterar su comportamiento en su beneficio.true
o UseUri
, la aplicación no utiliza cookies independientemente de si el explorador o el dispositivo las admite. Cuando el valor del atributo se establece en AutoDetect
o UseDeviceProfile
, las cookies no se utilizan, según la configuración del explorador o el dispositivo solicitante.Trace
de la directiva <page>
en true
o a nivel de la aplicación agregando un elemento trace
en el archivo web.config
y estableciendo su atributo enabled
en true
.<credentials>
en el archivo web.config
para una aplicación ASP.NET, que admite texto sin formato, formatos de contraseña MD5 y SHA1.web.config
almacena incorrectamente sus contraseñas en texto sin formato.
<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
del elemento configuration/system.web/authentication/forms/credentials
. Los posibles valores de este atributo son:Clear
- indica que la contraseña se almacena en texto sin formato (menos segura)MD5
- indica que el hash MD5 de la contraseña está almacenadoSHA1
- indica que el hash SHA1 de la contraseña está almacenado (más seguro)