Seguridad y programación (Visual C# y Visual Basic)
Los desarrolladores deben hacer frente a importantes cuestiones de seguridad cuando empiezan a trabajar con .NET Framework.Esta información general trata de aplicaciones tanto de Windows como Web, y de las fases de implementación y depuración de desarrollo.
Información general
Visual Studio proporciona control sobre la seguridad de las aplicaciones en ejecución.Mientras conserva el control con .NET Framework, este control le obliga a pensar en la programación a la vez que en la seguridad.Existen problemas de seguridad que se deben resolver para crear aplicaciones útiles y fáciles de usar para los usuarios.
Hay tres situaciones frecuentes en las que se debe dar respuesta a cuestiones de seguridad:
Permisos: el usuario que ejecuta su aplicación puede denegarle privilegios.Una situación así se puede producir porque la aplicación se ejecuta desde una ubicación en la que el usuario ha especificado que no se les permita el acceso a algunos recursos del sistema.Por ejemplo, el usuario puede configurar Common Language Runtime para denegar privilegios de archivo a cualquier aplicación almacenada en una unidad de red.Debe ser consciente de esto al trabajar y escribir código que pueda responder a las denegaciones.Para obtener más información, vea Directiva de seguridad de .NET Framework.
Aplicaciones Web: los usuarios que tienen acceso a aplicaciones Web desde servidores Web deben protegerse contra la ejecución de código malintencionado o datos dañinos en los servidores.Para obtener más información, vea Seguridad de ASP.NET.
Configuración de Visual Studio: el modo de configurar Visual Studio puede poner el servidor en peligro, en mayor o menor medida, frente a ataques de código malintencionado.Para obtener más información, vea User Rights and Visual Studio.
Proteger los recursos es un proceso que abarca varias tecnologías y todo el ciclo de desarrollo.Mediante un diseño, implementación, pruebas e instalación cuidadosos de las aplicaciones, puede crear aplicaciones muy seguras.Existen tecnologías de seguridad, proporcionadas por ASP.NET, el sistema operativo y exploradores web, para proteger las aplicaciones.
Recomendaciones de seguridad específicas
Ésta no es una lista exhaustiva de posibles problemas de seguridad.Se describen algunos de los problemas comunes a los que deben hacer frente los desarrolladores de Visual Basic y C#.
Asegúrese de que esté habilitada la comprobación de desbordamiento con enteros.En C#, puede habilitarla mediante la palabra clave checked o Configuración de generación avanzada (Cuadro de diálogo, C#).En Visual Basic, puede usar Configuración de compilador avanzada (Cuadro de diálogo, Visual Basic).
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, vea Análisis de código para obtener información general de código administrado.
Otros recursos de seguridad
Los siguientes sitios web de Microsoft proporcionan información detallada sobre cómo crear software seguro y confiable.
Temas relacionados
Título |
Descripción |
---|---|
Proporciona información general sobre la seguridad de .NET Framework y describe las técnicas de codificación para un entorno de confianza parcial. |
|
Describe las herramientas de Visual Studio que ayudan a proteger un servidor de desarrollo. |
|
Describe los objetos que se utilizan para proteger los recursos y las operaciones del uso por parte de usuarios no autorizados. |
Vea también
Tareas
Ejemplos de seguridad en Visual Basic
Conceptos
Instrucciones de codificación segura