policies net auth asp asp.net security

asp.net - auth - policies asp net core



Mejores prácticas de seguridad de ASP.NET (7)

Al mostrar el contenido de la base de datos en la página, puede usar HttpServerUtility.HtmlEncode para codificar la salida y evitar los ataques de cross site scripting (XSS).

¿Cuáles son las mejores prácticas de seguridad de ASP.NET?

Hasta ahora identificados se enumeran aquí:

  • Siempre genere nuevas claves de cifrado y contraseñas de administrador cada vez que mueva una aplicación a producción.

  • Nunca almacene contraseñas directamente o en forma encriptada. Siempre almacena contraseñas unidireccionales de una manera.

  • Guarde siempre las cadenas de conexión en la etiqueta de Web.config y encripte en la sección de configuración mediante el uso de proveedores de configuración protegidos (RSA o DPAPI). Ver ejemplo aquí

  • Use el ID de usuario con menos privilegios para conectarse al servidor SQL o la base de datos que está utilizando. Por ejemplo, si solo está ejecutando procedimientos almacenados desde un determinado módulo de aplicación, debe crear una ID de usuario que tenga permisos para ejecutar solo.

  • Utilice PrincipalPermission si desea usar la seguridad de la base de roles en las páginas.

    [PrincipalPermission(SecurityAction.Demand, Role="Admin")] public class AdminOnlyPage : BasePageClass { // ... }

  • Utilice siempre parámetros para evitar la inyección SQL en las consultas SQL.

    1. Considere instalar URLScan en sus servidores IIS para protegerse contra la Inyección SQL. Además, para proteger contra los ataques XSS. Puede usar la biblioteca AntiXSS de MSFT en lugar de la construida para codificar la salida en lugar del código HtmlEncode incorporado que se encuentra en HttpServerUtility.
  • Siempre mantenga customErrors en la configuración web para hacer que los errores / excepciones sean privados

    <modo CustomErrors = "Activado" defaultRedirect = "MyErrorPage.htm" />

  • En las aplicaciones web, siempre valide las entradas del usuario para las etiquetas html o cualquier secuencia de comandos.

  • Nunca almacene información confidencial, como contraseñas en las cookies.

  • No muestre mensajes de error del sistema, seguimientos de pilas, etc., en caso de excepción.



  1. Nunca almacene información confidencial como contraseñas en las cookies.
  2. No muestre mensajes de error del sistema, seguimientos de pila, etc. en caso de excepción.

Considere instalar URLScan en sus servidores IIS para protegerse contra la Inyección SQL.
Además, para proteger contra los ataques XSS, utilizaría la biblioteca AntiXSS de MSFT en lugar de la construida para codificar la salida en lugar del código HtmlEncode integrado que se encuentra en HttpServerUtility.