Seguridad (Guía de programación de C#)
Actualización: noviembre 2007
La seguridad es un aspecto necesario en toda aplicación de C# y debe tenerse en cuenta en todas las fases del desarrollo, no sólo cuando se han realizado el diseño y la implementación.
Recomendaciones de seguridad específicas de C#
Ésta no es una lista exhaustiva de posibles problemas de seguridad. En ella se resaltan algunos problemas comunes para los desarrolladores de C#.
Utilice la palabra clave checked para controlar el contexto de comprobación de desbordamiento en las conversiones y operaciones aritméticas de tipo integral.
Utilice siempre el tipo de datos más restrictivo para los parámetros. Por ejemplo, al pasar un valor a un método que describe el tamaño de una estructura de datos, utilice un entero sin signo en lugar de un entero.
No tome decisiones basadas en nombres de archivo. Los nombres de archivo se pueden expresar de muchas maneras diferentes y se podría omitir la comprobación de un archivo determinado.
No incluya nunca contraseñas o información confidencial en el código de la aplicación.
Valide siempre los datos de entrada que se utilicen para generar consultas SQL.
Valide todas las entradas de los métodos. Los métodos de expresiones regulares en el espacio de nombres System.Text.RegularExpressions son útiles para confirmar que la entrada sea correcta, por ejemplo una dirección de correo electrónico.
No muestre información de excepciones: esto proporciona pistas valiosas a cualquier posible atacante.
Asegúrese de que la aplicación funciona mientras se ejecuta con la menor cantidad de permisos posibles. Pocas aplicaciones requieren que el usuario inicie sesión como administrador.
No utilice sus propios algoritmos de cifrado. Utilice las clases System.Security.Cryptography.
Asigne nombres seguros a los ensamblados.
No almacene información confidencial en archivos XML o en otros archivos de configuración.
Compruebe el código administrado que envuelve cuidadosamente el código nativo. Confirme que el código nativo es seguro.
Actúe con precaución cuando utilice delegados pasados desde fuera de la aplicación.
Ejecute la herramienta de análisis del código de Visual Studio en los ensamblados para garantizar el cumplimiento de las instrucciones de diseño de Microsoft .NET Framework. Esta herramienta también puede encontrar y proporcionar advertencias sobre más de 200 defectos de código. Para obtener más información, consulte Detectar y corregir defectos de código administrado.
Otros recursos de seguridad
Los siguientes sitios web de Internet de Microsoft proporcionan información detallada sobre cómo crear software seguro de confianza.