Writing Secure J2EE Code
     AppSec USA - 23-26 October, 2012
Get a Big Scoop of Java
        Security
2 Days of Hands-on J2EE Security Code
Training.

How Data Breaches Happen And How to
Prevent Them.

J2EE Security Architecture Best Practices.

Introduction to Secure Code Review for J2EE
Applications.
RESERVE YOUR SEAT NOW


Reserve Your Seat
and Register at:
http://www.appsecusa.org/schedule/traini
ngs/writing-secure-j2ee-code/
YOU CAN EVEN WIN YOUR SEAT



• No Budget?

• No Problem...
Here Are The Rules
WIN a Free Seat at Writing Secure J2EE Code Class

                         IF

You could answer the 3 questions in the following 3
slides

                       AND

You Could Help Us Spread the Word About this
Awesome Event!
THE JAVA CHALLENGE!
Question 1:

What will happen when you attempt to compile and run the following code?

public class MyClass
{
   static
   {
      int one = 5;
   }
   static int one,two;
   public static void main(String args[])
   {
      one--;
      operate();
      System.out.println(one + two + ++one);
   }
   public static void operate()
   {
       two = one++ + ++one;
   }
}
A. Compile-time error
B. Run-time error
C. prints : 2
D. prints : 3
E. prints : 5
F. prints : 7
Question 2:

What is the result when you compile and run the following code?

public class MyClass
{
  static void operate()
  {
     System.out.println("Inside operate().");
     throw new IllegalAccessException("BAD!");
  }

 public static void main(String args[])
 {
   try
   {
       operate();
   }
   catch (IllegalAccessException e)
   {
       System.out.println("Caught " + e);
   }
 }
}
A. Compilation error
B. Runtime error
C. Compile successfully, nothing is printed.
D. Inside operate(). followed by caught: java.lang.IllegalAccessExcption: BAD!
Question 3:
What will happen when you attempt to compile and run the following code (there are two correct answers)?

public class MyClass extends Thread
{
   String myVar;
   MyThread(String name)
   {
      myVar = name;
   }
   public void run()
   {
      for(int i=0; i<50;i++)
      {
         System.out.println(myVar);
      }
   }
   public static void main(String args[])
   {
      try
      {
         MyThread t1 = new MyThread("t1");
         MyThread t2 = new MyThread("t2");
         t1.start();
         // Position1
         t2.start();
      }
      catch(InterruptedException ex)
      {
      }
   }
}
A. The above code in its current condition will not compile.
B. In order to make the MyThread class prints "t1" (50 times) followed by "t2" (50 times), t1.join(); can be placed at //Position1 position.
C. In order to make the MyThread class prints "t1" (50 times) followed by "t2" (50 times), t1.sleep(50); can be placed at //Position1 position.
D. In order to make the MyThread class prints "t1" (50 times) followed by "t2" (50 times), t1.run(); can be placed at //Position1 position.
E. In order to make the MyThread class prints "t1" (50 times) followed by "t2" (50 times), there is no need to write any code.
THE “OTHER CHALLENGE”
SPREAD THE WORD
• Tweet the following:

  “How Good of a Java Developer are You?
http://www.slideshare.net/skoussa/how-good-
         of-a-java-developer-are-you”

• Facebook and LinkedIn counts

• You win if you could get the most number of
 Retweets, Facebook likes, LinkedIn Likes
TO WIN
Send the answers plus your Twitter handle
(Facebook or LinkedIn if you used them) to:

         sherif.koussa@owasp.org

                    by

               October 2nd.
Helpful Tips!
• START EARLY!

• Remember it does not matter how big is your network,
  as much as how early you start.

• Send as many updates on Twitter, Facebook and
  LinkedIN as possible. Everything counts!

• Be innovative with your updates!

• Good Luck :)
• Follow @skoussa andor @appsecusa and
 the winner will be announced on


         October 5th, 2012
                 Good Luck

How Good of a Java Developer are You?

  • 1.
    Writing Secure J2EECode AppSec USA - 23-26 October, 2012
  • 2.
    Get a BigScoop of Java Security
  • 3.
    2 Days ofHands-on J2EE Security Code Training. How Data Breaches Happen And How to Prevent Them. J2EE Security Architecture Best Practices. Introduction to Secure Code Review for J2EE Applications.
  • 4.
    RESERVE YOUR SEATNOW Reserve Your Seat and Register at: http://www.appsecusa.org/schedule/traini ngs/writing-secure-j2ee-code/
  • 5.
    YOU CAN EVENWIN YOUR SEAT • No Budget? • No Problem...
  • 6.
    Here Are TheRules WIN a Free Seat at Writing Secure J2EE Code Class IF You could answer the 3 questions in the following 3 slides AND You Could Help Us Spread the Word About this Awesome Event!
  • 7.
  • 8.
    Question 1: What willhappen when you attempt to compile and run the following code? public class MyClass { static { int one = 5; } static int one,two; public static void main(String args[]) { one--; operate(); System.out.println(one + two + ++one); } public static void operate() { two = one++ + ++one; } } A. Compile-time error B. Run-time error C. prints : 2 D. prints : 3 E. prints : 5 F. prints : 7
  • 9.
    Question 2: What isthe result when you compile and run the following code? public class MyClass { static void operate() { System.out.println("Inside operate()."); throw new IllegalAccessException("BAD!"); } public static void main(String args[]) { try { operate(); } catch (IllegalAccessException e) { System.out.println("Caught " + e); } } } A. Compilation error B. Runtime error C. Compile successfully, nothing is printed. D. Inside operate(). followed by caught: java.lang.IllegalAccessExcption: BAD!
  • 10.
    Question 3: What willhappen when you attempt to compile and run the following code (there are two correct answers)? public class MyClass extends Thread { String myVar; MyThread(String name) { myVar = name; } public void run() { for(int i=0; i<50;i++) { System.out.println(myVar); } } public static void main(String args[]) { try { MyThread t1 = new MyThread("t1"); MyThread t2 = new MyThread("t2"); t1.start(); // Position1 t2.start(); } catch(InterruptedException ex) { } } } A. The above code in its current condition will not compile. B. In order to make the MyThread class prints "t1" (50 times) followed by "t2" (50 times), t1.join(); can be placed at //Position1 position. C. In order to make the MyThread class prints "t1" (50 times) followed by "t2" (50 times), t1.sleep(50); can be placed at //Position1 position. D. In order to make the MyThread class prints "t1" (50 times) followed by "t2" (50 times), t1.run(); can be placed at //Position1 position. E. In order to make the MyThread class prints "t1" (50 times) followed by "t2" (50 times), there is no need to write any code.
  • 11.
  • 12.
    SPREAD THE WORD •Tweet the following: “How Good of a Java Developer are You? http://www.slideshare.net/skoussa/how-good- of-a-java-developer-are-you” • Facebook and LinkedIn counts • You win if you could get the most number of Retweets, Facebook likes, LinkedIn Likes
  • 13.
  • 14.
    Send the answersplus your Twitter handle (Facebook or LinkedIn if you used them) to: sherif.koussa@owasp.org by October 2nd.
  • 15.
    Helpful Tips! • STARTEARLY! • Remember it does not matter how big is your network, as much as how early you start. • Send as many updates on Twitter, Facebook and LinkedIN as possible. Everything counts! • Be innovative with your updates! • Good Luck :)
  • 16.
    • Follow @skoussaandor @appsecusa and the winner will be announced on October 5th, 2012 Good Luck