<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.owasp.org/index.php?action=history&amp;feed=atom&amp;title=AppSecLatam2012%2FTraining%2FJava_Secure_Coding</id>
		<title>AppSecLatam2012/Training/Java Secure Coding - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.owasp.org/index.php?action=history&amp;feed=atom&amp;title=AppSecLatam2012%2FTraining%2FJava_Secure_Coding"/>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=AppSecLatam2012/Training/Java_Secure_Coding&amp;action=history"/>
		<updated>2026-05-01T09:53:22Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.27.2</generator>

	<entry>
		<id>https://wiki.owasp.org/index.php?title=AppSecLatam2012/Training/Java_Secure_Coding&amp;diff=136101&amp;oldid=prev</id>
		<title>Sarah Baso: Created page with &quot;=AppSec Latam 2012 Training: Java Secure Coding= '''Course Length: 2 Day'''&lt;br&gt; Training Audience: Technical&lt;br&gt; Required Skill Level: Intermediate&lt;br&gt;   ==Course Description=...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.owasp.org/index.php?title=AppSecLatam2012/Training/Java_Secure_Coding&amp;diff=136101&amp;oldid=prev"/>
				<updated>2012-09-18T22:52:32Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;=AppSec Latam 2012 Training: Java Secure Coding= &amp;#039;&amp;#039;&amp;#039;Course Length: 2 Day&amp;#039;&amp;#039;&amp;#039;&amp;lt;br&amp;gt; Training Audience: Technical&amp;lt;br&amp;gt; Required Skill Level: Intermediate&amp;lt;br&amp;gt;   ==Course Description=...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=AppSec Latam 2012 Training: Java Secure Coding=&lt;br /&gt;
'''Course Length: 2 Day'''&amp;lt;br&amp;gt;&lt;br /&gt;
Training Audience: Technical&amp;lt;br&amp;gt;&lt;br /&gt;
Required Skill Level: Intermediate&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Course Description==&lt;br /&gt;
In this class we discuss secure coding techniques using Java. It is a very hands-on course with many labs. Everything is done from a developers perspective, NOT a hackers perspective. We make an effort to show what to do, and avoid the usual security paradigm of only discussing what not to do. &lt;br /&gt;
&lt;br /&gt;
The course covers input validation, authentication, authorization, session management, databases, output encoding, error handling, logging, file handling, file uploading, and cryptography.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The class is hands-on and will include labs. Attendees should have a laptop capable of running VMs. We will provide a VM at the beginning of the class.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Instructor Bio==&lt;br /&gt;
Instructor: Ari Elias-Bachrach, [http://www.appsec-labs.com Appsec Labs]&amp;lt;br&amp;gt;&lt;br /&gt;
Twitter: @angelofsecurity&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Course Outline==&lt;br /&gt;
&lt;br /&gt;
1.	Intro to class&lt;br /&gt;
 a.	Goals for class&lt;br /&gt;
 b.	Agenda&lt;br /&gt;
 c.	Intro to security&lt;br /&gt;
 d.	integrating security into the SDLC&lt;br /&gt;
&lt;br /&gt;
2.	Input validation&lt;br /&gt;
 a.	Why needed (cmd injection, xss, sql injection, logic errors, etc.)&lt;br /&gt;
 b.	When needed (any time there’s input. Everything is input)&lt;br /&gt;
 c.	Where done (Client = bad, server = good)&lt;br /&gt;
 d.	Whitelist vs blacklist&lt;br /&gt;
 e.	How to do regex&lt;br /&gt;
 f.	Canonicalization&lt;br /&gt;
 g.	Other ways to validate – length, range&lt;br /&gt;
 h.	ESAPI&lt;br /&gt;
&lt;br /&gt;
3.	Authentication&lt;br /&gt;
 a.	Definition and explanation&lt;br /&gt;
 b.	The three factors of authentication – what they are and examples of each&lt;br /&gt;
 c.	Types of auth: basic, digest, client cert, windows, forms based&lt;br /&gt;
 d.	Securing the passwords (hash, salt, HMAC)&lt;br /&gt;
 e.	Brute force&lt;br /&gt;
 f.	Anti-automation&lt;br /&gt;
 g.	Revealing usernames&lt;br /&gt;
&lt;br /&gt;
4.	Authorization&lt;br /&gt;
 a.	Definition and explanation&lt;br /&gt;
 b.    ACL&lt;br /&gt;
 c.    secure by URL&lt;br /&gt;
 d.    secure at service layer&lt;br /&gt;
&lt;br /&gt;
5.	Session Management&lt;br /&gt;
 a.	Maintaining session state&lt;br /&gt;
 b.	What not do &lt;br /&gt;
 c.	Java session management with JSESSIONID &lt;br /&gt;
 d.	Cookie security&lt;br /&gt;
 e.	Session fixation&lt;br /&gt;
&lt;br /&gt;
6.	How to deal with databases&lt;br /&gt;
 a.	Why needed (SQLi) &lt;br /&gt;
 b.	Parameterized queries&lt;br /&gt;
 c.	Stored procedures&lt;br /&gt;
 d.	Connection strings – how to store them&lt;br /&gt;
 f.	Permissions&lt;br /&gt;
 g.	Other misc tips&lt;br /&gt;
&lt;br /&gt;
7.	Output encoding&lt;br /&gt;
 a.	Intro to XSS&lt;br /&gt;
 b.	Demo something more dangerous – change action of form or steal JSESSIONID&lt;br /&gt;
 c.	HTML encode&lt;br /&gt;
 d.	Other encoding contexts&lt;br /&gt;
 e.	ESAPI encoding&lt;br /&gt;
 f.	ESAPI demo&lt;br /&gt;
&lt;br /&gt;
8.	Error handling&lt;br /&gt;
 a.	Info disclosed during error handling&lt;br /&gt;
 b.	Custom error messages&lt;br /&gt;
&lt;br /&gt;
9.	Logging/auditing&lt;br /&gt;
 a.	Importance of logging&lt;br /&gt;
 b.	Logging technologies (log4j)&lt;br /&gt;
 c.	Events to log&lt;br /&gt;
 d.	Data NOT to log&lt;br /&gt;
&lt;br /&gt;
10.	File handling&lt;br /&gt;
 a.	Directory traversal&lt;br /&gt;
 b.	Canonicalization&lt;br /&gt;
 c.	File extension handling – backup file (.old .bck, etc.)&lt;br /&gt;
 d.	Directory listing&lt;br /&gt;
&lt;br /&gt;
11.	File uploads&lt;br /&gt;
 a.	Threats&lt;br /&gt;
 b.	Whitelist file types&lt;br /&gt;
 c.	Convert file types (to drop executable code/virus)&lt;br /&gt;
 d.	Limit number of uploads &amp;amp; file sizes and who can do them&lt;br /&gt;
 e.	File storage&lt;br /&gt;
&lt;br /&gt;
12.	Data confidentiality and integrity&lt;br /&gt;
 a.	Threats to Data&lt;br /&gt;
 b.	Crypto&lt;br /&gt;
 c.	JCE – Java crypto architecture&lt;br /&gt;
 d.	Hash Functions &amp;amp; salt&lt;br /&gt;
 e.	Digital signatures&lt;br /&gt;
 f.	SSL&lt;/div&gt;</summary>
		<author><name>Sarah Baso</name></author>	</entry>

	</feed>