Combined Java, .NET and Web Application Security

Both Java and .NET development environments provide powerful means for Security Development, but developers should know how to apply the various architecture- and coding-level programming techniques in order to implement the desired security functionality and avoid vulnerabilities.

Providing hands-on knowledge, the course contains numerous exercises on how to use various APIs and tools to preventable untrusted code from performing privileged actions, protect resources through strong authentication and authorization, providesunique Secured Remote Procedure Calls, handle session, Introduce Different implementations for certainement functionality, and many more. 

Most Importantly, the course Explains the most frequent and Severe programming flaws typically committed by programmers. 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 both development platforms. Besides the typical security-relevant Java and .NET bugs, the Introduced security vulnerabilities cover bothering language-specific issues and problems stemming from the runtime environments One should be aware of. All vulnerabilities and the relevant attacks are demonstrated through the easy-to-understand exercises, followed by the recommended coding guidelines and the possible mitigation techniques.


Java and .NET developers, architects and testers 


Preparedness: Basic Java, ASP.NET and Web Application 

Course outline:

  • Web vulnerabilities: 
    OWASP Top 10 and beyond: SQL Injection and Other Injection flaws, Cross-Site Scripting: persistent and Reflected XSS, session action challenges, using cookies, Remote Code Execution, Insecure Direct Object Reference, Cross-Site Request Forgery (CSRF) , Restricting the URL access.


  • Java Security Technologies and Services: 
    Java Language Security Solutions, Java Virtual Machine (JVM) and Java Runtime Environment (JRE); ByteCode Verifier and ClassLoader; Security Manager and Access Controller, managing permissions with the Policy Tool; Java Cryptography Architecture (JCA) and Java Cryptographic Extension (JCE), Java Secure Socket Extension (JSSE), the Java Authentication and Authorization Service (JAAS), Java Keystore (JKS) and The keytool


  • .NET And ASP.NET Security Technologies and Services: 
    Code Access Security, permissions, the stack walk, a trust levels; Role-Based Security; Cryptography in .NET; ASP.NET Authentication and Authorization solutions, windows and form authentication, Live SDK, roles; Session act; XSS protection, validation features, viewstate protection in ASP.NET.


  • Java and .NET specified vulnerabilities: 
    input validation problems, integer overflows in Java, using the checked keyword in .NET, Calendar / zoneinfo deserialization bug (CVE 2008-5353) in Java, log forging; improper use of cryptographic features, insecure randomness in Java and .NET, Challenges of Password Management, Cracking hashed passwords with search engines; improper Error and Exception Handling, returning from the finally in Java; Time and state problems, race conditions, synchronization and mutual exclusion, deadlock, File and Database race conditions; General code quality issues, object hijacking, immutable objects, serialization of sensitive information; Denial-of-Service (DoS) in Java (the "2.2250738585072012e-308 bug") and .NET (hashtable collision), attacks against ASP.NET, string termination inconsistency; Dangers of mobile code, a critical public data, problems with inner classes, and many more ...


  • Exercises: 
    exploiting SQL injection; exploiting command injection; crafting reflective and persistent cross-site scripting attacks; HTML injection; Session fixation; uploading and running executable code; insecure direct object reference; committing Cross-Site Request Forgery (CSRF); setting and using Permissions in Java Authentication and Authorization through JAAS, using JCA / JCE providers for digital signing and encryption, leave for signed code, using JSSE - switching from HTTP to HTTPS; sandboxing .NET code, using roles, using cryptographic classes in .NET, Implementing the form authentication, input validation in ASP.NET; crashing the native code; The unsafe reflections; hash cracking by googling; using reflection to break accessibility modifiers; information leakage through the Error Reporting; Missing synchronization; wrong exclusion granularity; Avoiding deadlock; Overcoming file race conditions; Object hijacking; immutable string; Preventing serialization; crashing Java with magic double values; using hidden and disable controls; Value shadowing; Mobile code exploiting vulnerabilities; exploiting the inner classes.

Other relevant courses