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.
- 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.
Encontré el código de autopista para desarrolladores de Microsoft como una lista de verificación de seguridad útil.
Microsoft tiene mucho que decir sobre este tema:
- Seguridad de la aplicación web ASP.NET .
- Mejora de la seguridad de las aplicaciones web (un libro completo dedicado al tema)
- Nunca almacene información confidencial como contraseñas en las cookies.
- 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.
Vea el nuevo Security Runtime Engine (el beta salió el 14 de noviembre):
http://blogs.msdn.com/cisg/archive/2008/10/24/a-sneak-peak-at-the-security-runtime-engine.aspx
http://blogs.msdn.com/cisg/archive/2008/11/13/an-update-on-some-upcoming-free-tools.aspx
Esto debería reemplazar la biblioteca Anti-XSS actual.
Anthony :-) www.codersbarn.com
Puede estar interesado en este artículo Mejores prácticas de seguridad: aplicaciones ASP.NET . HTH