Combined Java, PHP and Web Application Security

Even experienced programmers do not master by all means the various security services offered by their development platforms, and are likewise not aware of the different vulnerabilities that are relevant for their developments. This course targets developers using both Java and PHP, providing them essential skills necessary to make their applications resistant to contemporary attacks through the Internet.

Levels of Java security architecture are walked through by tackling access control, authentication and authorization, secure communication and various cryptographic functions. Various APIs are also introduced that can be used to secure your code in PHP, like OpenSSL for cryptography or HTML Purifier for input validation. On server side, best practices are given for hardening and configuring the operating system, the web container, the file system, the SQL server and the PHP itself, while a special focus is given to client-side security through security issues of JavaScript, Ajax and HTML5.

General web vulnerabilities are discussed by examples aligned to the OWASP Top Ten, showing various injection attacks, script injections, attacks against session handling, insecure direct object references, issues with file uploads, and many others. The various Java- and PHP-specific language problems and issues stemming from the runtime environment are introduced grouped into the standard vulnerability types of missing or improper input validation, improper use of security features, incorrect error and exception handling, time- and state-related problems, code quality issues and mobile code-related vulnerabilities.

Participants can try out the discussed APIs, tools and the effects of configurations for themselves, while the introduction of vulnerabilities are all supported by a number of hands-on exercises demonstrating the consequences of successful attacks, showing how to correct the bugs and apply mitigation techniques, and introducing the use of various extensions and tools.

Audience

Java, PHP and Web application developers

Course Objectives

Participants attending this course will:

§ Understand basic concepts of security, IT security and secure coding

§ Learn Web vulnerabilities beyond OWASP Top Ten and know how to avoid them

§ Learn client-side vulnerabilities and secure coding practices

§ Learn to use various security features of the Java development environment

§ Have a practical understanding of cryptography

§ Learn about XML security

§ Learn about JSON security

§ Learn to use various security features of PHP

§ Learn about denial of service attacks and protections

§ Get practical knowledge in using security testing techniques and tools

§ Learn about typical coding mistakes and how to avoid them

§ Be informed about recent vulnerabilities in Java and PHP frameworks and libraries

§ Get information about some recent vulnerabilities in the Java framework

§ Get sources and further readings on secure coding practices

Prerequisites

Advanced Java, PHP and Web application development

Outline

§ IT security and secure coding

§ Web application security

§ Web application vulnerabilities

§ Client-side security

§ Foundations of Java security

§ Practical cryptography

§ Java security services

§ Security of Web services

§ XML security

§ JSON security

§ PHP security services

§ PHP Environment

§ Denial of service

§ Security testing techniques

§ Common coding errors and vulnerabilities

§ Principles of security and secure coding

§ Knowledge sources