| Java Training   Overview 
 
 
				
This advanced course shows experienced developers of Java web applications how to secure those applications and to apply best practices with regard to secure enterprise coding. Authentication, authorization, and input validation are major themes, and students get good exposure to basic Java cryptography for specific development scenarios, as well as thorough discussions of HTTPS configuration and certificate management, error handling, logging, and auditing.
 Java Training   Prerequisites
 
 
 
Java Training  Learning ObjectivesJava programming experience is essential -- Course "Java Programming" is excellent preparation.Servlets programming experience is required -- Course "Java Servlets"JSP page-authoring experience is recommended but not required 
 After completing this course, the student should be able to:
		 
		Java Training   Course durationGenerally, be prepared to develop secure Java web applications, or to secure existing applications by refactoring as necessary.Define security constraints and login configurations that instruct the web container to enforce authentication and authorization policies.Validate user input aggressively, for general application health and specifically to foil injection and XSS attacks.Configure a server and/or application to use one-way or two-way HTTPS.Apply application-level cryptography where necessary.Secure log files and establish audit trails for especially sensitive information or actions. 
 3 Days
 
 Java Training   Course outline
 
 Chapter 1. Secure Web Applications
 
Chapter 2. Authentication and AuthorizationThreats and Attack VectorsServer, Network, and Browser VulnerabilitiesSecure Design PrinciplesGET vs. POSTContainer Authentication and AuthorizationHTML FormsPrivacy Under /WEB-INFHTTP and HTTPSOther Cryptographic PracticesSOA and Web ServicesThe OWASP Top 10 
Chapter 3. Secure Application DesignHTTP BASIC and DIGEST Authentication SchemesDeclaring Security ConstraintsUser AccountsSafeguarding Credentials in TransitReplay AttacksAuthorization Over URL PatternsRolesFORM AuthenticationLogin Form DesignEJB AuthorizationProgrammatic SecurityProgrammatic Security in JSF 
Chapter 4. HTTPS and CertificatesSingle Points of DecisionCross-Site ScriptingValidation vs. Output EscapingForceful BrowsingCross-Site Request ForgeryRequest TokensInjection AttacksProtections in JDBC and JPASession ManagementTaking Care of CookiesValidating User InputValidation PracticesRegular ExpressionsJSF Validation 
Chapter 5. Application-Level CryptographyDigital CryptographyEncryptionSSL and Secure Key ExchangeHashingSignatureKeystoreskeytoolWhy Keys Aren't EnoughX.509 CertificatesCertificate AuthoritiesObtaining a Signed CertificateConfiguring HTTPSClient-Side Certificates and Two-Way SSLPKCS #12 and Trust StoresCLIENT-CERT Authentication 
Chapter 6. Secure Development PracticesThe Java Cryptography ArchitectureSecure Random Number GenerationThe KeyStore APIThe Signature ClassThe SignedObject ClassThe MessageDigest ClassThe Java Cryptography ExtensionsThe SecretKey and KeyGenerator TypesThe Cipher ClassChoosing Algorithms and Key SizesDangerous Practices 
Appendix A. Learning ResourcesSecure Development CycleError Handling and Information LeakageFailing to a Secure ModeLogging PracticesAppropriate Content for LogsAuditingStrategies: Filters, Interceptors, and Command ChainsPenetration TestingBack Doors 
 System Requirements
 
 Minimum Hardware Requirements
 
 
 Minimum Software Requirements1 GHz, 256 meg RAM, 500 meg disk space.
 
 
 
 
			    
Hardware – recommended                    All free downloadable tools.
 
 
 
			    
		              
		    Network and Security1.5 GHz, 512 meg RAM, 1 gig disk space.
 
 
 
			    
		              
		    Operating systemLimited privileges required
 
 
 
			    
			    Tested on Windows XP Professional. Course software should be viable on all systems which support a J2SE 5.0 JDK.
 
 
 |