
Learn how common programming errors create security vulnerabilities and adopt secure programming patterns for web applications, relevant for developers and project managers across internal and public applications.
Identify well-known web vulnerabilities, including code and sql injection, xss, csrf, file inclusion, directory traversal, clickjacking, session hijacking, and authentication weaknesses, plus third-party libraries and tls concerns.
Explore the causes and background of web security problems, from the application stack to input validation and output encoding, and understand front end and back end attacks.
Apply general secure programming patterns by linking every session and transaction to authenticated users, validating data ranges and content, and preferring whitelisting over blacklisting.
Intro to BankBoard, a vulnerable Web forum / board without input filtering and other security measures. Purely for demonstrating purposes. If you are only interested in the factual descriptions, you can skip these lectures!
Explore code and command injection threats and learn secure programming patterns that mitigate risk by avoiding user inputs in commands and using whitelisting.
Explore how SQL and NoSQL code injection occurs when user input is concatenated into queries. Learn to prevent injections using prepared statements and parameterized queries across Java and NoSQL environments.
(If you are only interested in the factual descriptions, you can skip these DEMO lectures!) Demonstration of a simple SQL code injection exploit using BankBoard as introduced before.
Explore how CSRF abuses active sessions to trigger state-changing actions like money transfers via HTTP GET, and how tokens in hidden fields are validated on the server side.
(If you are only interested in the factual descriptions, you can skip these DEMO lectures!) Demonstration of CSRF attack variants using BankBoard as introduced before.
Learn to prevent cross-site scripting (XSS) by implementing proper output encoding for HTML and JavaScript, addressing persistent, reflected, and DOM-based attacks, and validating input across the application.
(If you are only interested in the factual descriptions, you can skip these DEMO lectures!) Demonstration of some simple XSS attacks in action using BankBoard as introduced before.
Learn to prevent open redirection by using static redirects or a server-side table mapping IDs to fixed destinations. Apply whitelist filtering for external redirects to ensure only approved destinations.
Explore remote and local file inclusion and directory traversal risks from manipulated paths, and apply whitelisting and canonical path verification with get canonical file to prevent exploits.
Explore how iframes expose cookies and sessions to clickjacking, and learn defense strategies such as http header frame options and same-origin policy checks to prevent unauthorized embedding.
Learn to prevent session hijacking by managing session IDs and cookies, including temporary vs long sessions, logout, re-authentication for critical actions, and secure HttpOnly cookies with restricted path and domain.
(If you are only interested in the factual descriptions, you can skip these DEMO lectures!) Demonstration of XSS with Session-Hijacking using BankBoard as introduced before.
Identify unintentional information disclosure in web applications, from error traces to banner grabbing and usernames and passwords. Learn secure configuration and error handling to protect sensitive data.
Explore authentication methods from username-password, certificate-based signing, and token codes to biometrics and multi-factor authentication, and apply secure password practices and anti-brute-force safeguards.
Protect web applications from denial of service by analyzing resource handling, memory management, and middleware configuration; deploy CAPTCHAs and detection to curb flooding and botnet traffic.
Explore how middleware acts as the web application's runtime environment, with examples like Apache with Perl, Tomcat, and SAP; secure configuration, TLS, and patch management are essential.
Assess and manage third party software and components, patch vulnerabilities promptly, follow vendor security advisories, and precisely specify and encode input and output formats.
Secure programming demands time and experience to prevent remote code execution and server-side attacks, while tool-based checks and security documentation support developers and align with OWASP and PCI DSS.
In this lecture, we will learn how to code secure password hashing into a Java application. This might be necessary, e.g., in case your application framework does not offer a secure password management function. The used hashing procedure can be changed, the principle remains the same!
Prerequisites are Java, Eclipse (or similar) and the Apache Commons Codec and that you are familiar with encoding schemes like Hex or Base64.
Understand Application Security: Numerous successful attacks on well-known web applications on a weekly basis should be reason enough to study the background of "Web Application Security" of custom-made or self-developed applications.
Computer systems are ubiquitous and part of our working and private everyday life. For companies it is increasingly complex and difficult to keep up their IT security with the current technical progress. Large enterprises establish security processes which are created according to industry standards (e.g., ISO 27001). These processes are very complex and can only be implemented by teams of security experts. Constant quality assurance, maintenance and adaptation also belong to an IT security process.
It does not matter if a company develops products or runs an online shop, IT security is a characteristic feature. Security incidents, which maybe even reach public uncontrolled, do not only damage the business image but may also lead to legal or financial consequences.
Intro
Typical Vulnerabilities Overview
Cause & Background
Secure Programming in general
Code/Command Injection in general
(No)SQL Code Injection
Cross-Site Request Forgery (CSRF)
Cross-Site Scripting (XSS)
Open Redirection
File Inclusion / Directory Traversal
Clickjacking
Session-Hijacking
Information Disclosure
Attacks on Weaknesses of the Authentication
Denial of Service
Middleware
Third-Party Software
Summary and Conclusion
The principles taught in this course are language and platform independent. However, the course will include examples for Java and PHP.
Instructor Frank Hissen, Computer Scientist and Security Expert, teaches IT security for over 20 years and works for companies of all sizes as IT Security Consultant and Software Engineer.