Advanced C#, ASP.NET and Web Application Security

This course is already delivered, please contact us for the next available session tel:+357 22 44 14 92
Course Outline in PDF


Beyond a solid knowledge in using various security features of .NET and ASP.NET, even for experienced programmers it is essential to have a deep knowledge in Web-related vulnerabilities both on server and client side along with the consequences of the various risks. In this course the general web-based vulnerabilities are demonstrated through presenting the relevant attacks, while the recommended coding techniques and mitigation methods are explained in the context of ASP.NET. A special focus is given to client-side security tackling security issues of JavaScript, Ajax and HTML5.The course also deals with the security architecture and components of the .NET framework, including code- and role based access control, permission declaration and checking mechanisms and the transparency model. A brief introduction to the foundations of cryptography provides a common practical baseline for understanding the purpose and the operation of various algorithms, based on which the course presents the cryptographic features that can be used in .NET. Introduction of different security bugs follows the well-established vulnerability categories, tackling input validation, security features, error handling, time- and state-related problems, the group of general code quality issues, and a special section on ASP.NET-specific vulnerabilities. These topics are concluded with an overview on testing tools that can be used to automatically reveal some of the learnt bugs

Who Should Attend:

Web developers using ASP.NET

At Course Completion:

•Knowledge of basic concepts of security, IT security, cryptography and secure coding
•Understand Web vulnerabilities beyond OWASP Top Ten and know how to avoid them
•Understand client-side vulnerabilities and secure coding practices
•Knowledge to use various security features of the .NET development environment
•Informed about some recent vulnerabilities in .NET and ASP.NET
•Knowledge about typical coding mistakes and how to avoid them
•Gained practical knowledge in using security testing tools
•Get sources and further reading on secure coding practices


Module 1: IT security and secure coding

•Nature of security
•IT security related terms
•Definition of risk
•Different aspects of IT security
•Requirements of different application areas
•IT security vs. secure coding
•From vulnerabilities to botnets and cyber crime
•Classification of security flaws

Module 2: Web application vulnerabilities

•Broken authentication and session management
•Cross-Site Scripting (XSS)
•Insecure direct object reference
•Missing function level access control
•Cross Site Request Forgery (CSRF)
•Unvalidated redirects and forwards

Module 3: Client-side security

•JavaScript security
•Ajax security
•HTML5 Security  

Module 4: NET security architecture and services

•NET architecture
•Code Access Security
•Role-based security

Module 5: Basics of cryptography

•Symmetric-key cryptography
•Other cryptographic algorithms
•Asymmetric (public-key) cryptography
•Public Key Infrastructure (PKI)
•Cryptography in .NET

Module 6: ASP.NET security architecture

•ASP.NET basics
•ASP.NET features
•ASP.NET authentication and identity management
•ASP.NET authorization

Module 7: ASP.NET security features and vulnerabilities

•Custom protected configuration providers
•Post back validation
•View state protection
•View state protection
•Event validation
•Accessing disabled and hidden controls
•Control sequence attacks
•NULL byte termination vulnerability
•Real life example – Forms Authentication Bypass
•Denial of service possibilities

Module 8: Typical coding errors in .NET

•Input validation
•Improper use of security features
•Improper error and exception handling
•Time and state problems
•Code quality problems

Module 9: Using security testing tools

•Web vulnerability scanners
•SQL injection tools
•Proxy servers and sniffers
•Exercise – Capturing network traffic
•Static code analysis

Module 10: Advices and principles

•Matt Bishop’s principles of robust programming
•The security principles of Saltzer and Schroeder

Module 11: Knowledge sources

•Secure coding sources – a starter kit
•Vulnerability databases
sd sd sd sd sd sd sd sd sd sd sd sd