We may earn an affiliate commission when you visit our partners.
Course image
Frank Hissen

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.

Read more

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. 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.

Enroll now

What's inside

Learning objectives

  • Security of web applications
  • Secure programming patterns
  • Security baselines
  • Secure coding

Syllabus

Intro
Introduction and Motivation
Well-known Vulnerabilities Overview
Causes & Background
Read more

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!

(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.

(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.

(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.

(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.

This test consists of multiple choice questions which reflect the most important course topics.

It gives you the opportunity to verify your learning progress. Thank you for taking this course!

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.

Prerequisites are Java, Eclipse (or similar) and the Apache Commons Codec and that you are familiar with encoding schemes like Hex or Base64.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Covers common web application vulnerabilities like SQL injection, XSS, and CSRF, which are essential for developers to understand and mitigate in their code
Explores secure programming patterns and security baselines, providing a foundation for building more resilient web applications and reducing the risk of security incidents
Includes optional sections with specific secure coding tutorials for Java and PHP, which allows developers to apply the learned principles in practical scenarios
Uses a vulnerable web forum called BankBoard for demonstration purposes, which may not reflect the complexity of real-world applications and could oversimplify certain attacks
Requires familiarity with Java, Eclipse, and Apache Commons Codec for the secure password hashing tutorial, which may pose a barrier for learners without prior experience in these technologies
Taught by an instructor with 20 years of experience in IT security, which suggests a strong practical foundation and real-world insights into the subject matter

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Secure web app programming fundamentals

According to learners, this course provides a solid foundation in web application security concepts and vulnerabilities. Many students found the explanations clear and easy to understand, particularly appreciating the practical demonstrations of common attack types like SQL Injection and XSS. The course is often described as beginner-friendly and a good starting point for developers new to security. However, some reviewers noted that the content might be slightly outdated in places and that more advanced topics or modern techniques could be included. The optional practical sections for developers were highlighted as particularly useful for hands-on learning.
Practical coding exercises are very valuable.
"The optional sections for developers with coding tasks were extremely helpful."
"Transforming insecure code was a great practical exercise."
"I liked the practical coding challenges provided at the end."
Accessible and suitable for those new to security.
"As someone new to web security, I found this course perfect."
"It's a good introductory course, not too overwhelming."
"Great for beginners wanting to learn secure coding practices."
Hands-on demos effectively illustrate vulnerabilities.
"The demonstrations using the BankBoard were very insightful."
"Seeing the attacks in action through demos helped solidify my understanding."
"I really appreciated the practical examples showing how vulnerabilities work."
Provides a strong basis in web security fundamentals.
"This course gave me a great starting point for understanding web security."
"I feel I have a solid foundational knowledge after completing the course."
"It covers the most important basic vulnerabilities effectively."
Concepts are explained clearly and are easy to follow.
"I found the course content very clear and easy to understand."
"The explanations provided for each vulnerability type were concise."
"The instructor explains complex concepts simply, making them accessible."
Some concepts/examples may be slightly outdated.
"Some parts of the course feel a bit dated."
"I think some sections could be updated to reflect newer attack vectors or defenses."
"It covers fundamentals well, but could use more modern examples."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Secure Programming of Web Applications - Developers and TPMs with these activities:
Review Common Web Vulnerabilities
Refresh your understanding of common web vulnerabilities before starting the course. This will provide a solid foundation for understanding secure programming practices.
Browse courses on Cross-Site Scripting
Show steps
  • Read articles and watch videos explaining common vulnerabilities.
  • Review OWASP's Top Ten Web Application Security Risks.
  • Take a short quiz to test your knowledge.
Read 'OWASP Testing Guide'
Familiarize yourself with a structured approach to web application security testing. This will help you identify and prevent vulnerabilities in your own code.
Show steps
  • Download the OWASP Testing Guide.
  • Read the guide cover to cover.
  • Practice the testing techniques described in the guide.
Read 'Web Application Hacker's Handbook'
Study a comprehensive guide to web application security. This will provide a deeper understanding of the vulnerabilities covered in the course.
Show steps
  • Read the book cover to cover.
  • Take notes on key concepts and vulnerabilities.
  • Try out the examples and exercises in the book.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Practice SQL Injection Attacks
Reinforce your understanding of SQL injection by practicing attacks in a safe environment. This will help you identify and prevent SQL injection vulnerabilities in your own code.
Show steps
  • Set up a vulnerable web application (e.g., OWASP Juice Shop).
  • Attempt different SQL injection attacks.
  • Analyze the results and identify the vulnerabilities.
Write a Blog Post on a Specific Vulnerability
Deepen your understanding of a specific vulnerability by researching and writing a blog post about it. This will help you communicate your knowledge to others and reinforce your own learning.
Show steps
  • Choose a vulnerability to write about (e.g., CSRF or XSS).
  • Research the vulnerability and its impact.
  • Write a clear and concise blog post explaining the vulnerability.
  • Include examples and code snippets to illustrate the vulnerability.
Build a Secure Web Application
Apply the principles learned in the course by building a secure web application from scratch. This will solidify your understanding of secure programming practices and help you identify potential vulnerabilities.
Show steps
  • Choose a web application to build (e.g., a simple blog or task manager).
  • Design the application with security in mind.
  • Implement secure coding practices throughout the development process.
  • Test the application for vulnerabilities.
Contribute to an Open Source Security Project
Gain practical experience in secure programming by contributing to an open source security project. This will expose you to real-world security challenges and help you learn from experienced developers.
Show steps
  • Find an open source security project that interests you.
  • Review the project's code and documentation.
  • Identify a bug or vulnerability to fix.
  • Submit a patch or pull request.

Career center

Learners who complete Secure Programming of Web Applications - Developers and TPMs will develop knowledge and skills that may be useful to these careers:
Application Security Engineer
An Application Security Engineer focuses on identifying and mitigating security vulnerabilities in software applications. This role involves secure coding practices, security testing, and risk assessment to protect applications from threats. This course, with its emphasis on web application security, secure programming patterns, and secure coding, provides a strong foundation for those aspiring to become Application Security Engineers. The exploration of vulnerabilities like SQL injection, cross site scripting, and cross site request forgery directly prepares one to recognize and address these issues in real-world applications. Furthermore, the practical examples in Java and PHP provide hands-on experience in applying secure coding principles.
DevSecOps Engineer
A DevSecOps Engineer integrates security practices into the software development lifecycle, fostering a culture of shared responsibility for security. This course, with its emphasis on secure programming patterns and secure coding, provides a strong foundation for effective DevSecOps practices. Knowledge of vulnerabilities like SQL injection and cross site scripting directly prepares one to integrate security considerations into the development pipeline, ensuring that applications are built with security in mind from the outset. The DevSecOps Engineer will use knowledge of security baselines.
Technical Program Manager
Technical Program Managers oversee complex, cross-functional projects within an organization. Understanding security risks and vulnerabilities is important for managing projects that involve software development. The course's overview of common vulnerabilities and secure programming practices helps Technical Program Managers make informed decisions about security-related tasks and resource allocation. The secure programming patterns covered in this course may be helpful.
Security Consultant
A Security Consultant advises organizations on how to improve their security posture and protect their assets. This often includes assessing vulnerabilities, recommending security controls, and developing security policies. This course, with its comprehensive coverage of web application security principles and common vulnerabilities, will be useful for anyone aiming to enter the field of security consulting. The course's focus on understanding the causes and backgrounds of vulnerabilities, along with secure programming techniques, helps build a strong understanding of security risks faced by modern web applications. The instructor's experience as an IT Security Consultant adds credibility and relevance to the course content.
Vulnerability Assessment Analyst
Vulnerability Assessment Analysts scan systems and applications for security weaknesses. Understanding common web application vulnerabilities is crucial. They learn secure programming practices to identify vulnerabilities and recommend remediation measures. With its comprehensive coverage of web application security principles and common vulnerabilities, will be useful for anyone aiming to enter the field of security consulting. The course's focus on understanding the causes and backgrounds of vulnerabilities, along with secure programming techniques, helps build a strong understanding of security risks faced by modern web applications.
Penetration Tester
Penetration Testers, sometimes called ethical hackers, simulate attacks on computer systems to identify security vulnerabilities. They use a variety of tools and techniques to exploit weaknesses and provide recommendations for remediation. The course, especially its coverage of common vulnerabilities like SQL injection, cross site scripting, and denial of service, provides valuable insights into the attack vectors used by malicious actors. A penetration tester benefits from understanding the underlying causes and backgrounds of these vulnerabilities. The penetration tester will ultimately understand secure coding practices and secure programming patterns.
Information Security Analyst
Information Security Analysts protect an organization's data and systems from cyber threats. An Information Security Analyst will benefit from this course. It discusses security baselines and vulnerabilities. The course emphasizes secure programming and coding. An Information Security Analyst must understand the security of web applications.
Security Auditor
Security Auditors evaluate an organization's security controls and practices to ensure their effectiveness. This course, with its comprehensive coverage of web application security principles and common vulnerabilities, helps build a strong understanding of security risks faced by modern web applications. A Security Auditor will also need to know the security baselines of web applications. They need to perform a thorough audit.
Security Architect
A Security Architect designs and implements security systems for organizations. They are concerned with the overall security posture of the organization's infrastructure and applications. This course may provide insights into secure coding practices and application security principles. These are essential considerations when designing secure systems. The course's coverage of vulnerabilities and secure programming provides knowledge for understanding potential weaknesses in application design. A security architect must know the security baselines.
Web Application Developer
Web Application Developers specialize in building and maintaining web applications. Web application security is a primary focus, so taking this course may be beneficial to one's career. The course covers language and platform independent principles. Web Application Developers will learn secure coding practices. They also learn security baselines and secure programming patterns, all taught with the goal of solidifying one's career.
Cloud Security Engineer
Cloud Security Engineers are responsible for securing cloud-based infrastructure and applications. They implement security controls, monitor for threats, and ensure compliance with security policies. This course may be particularly useful for Cloud Security Engineers. It covers secure programming practices and vulnerabilities relevant to web applications. Cloud Security Engineers learn important, secure programming patterns.
Software Developer
Software Developers design, develop, and test software applications. Incorporating security considerations into the software development lifecycle is crucial for building robust and reliable applications. This course helps software developers understand the importance of secure coding practices. The principles taught in this course are language and platform independent. Software developers learn how to write secure code. They may also learn about vulnerabilities and how to prevent them.
Security Operations Center Analyst
Security Operations Center Analysts monitor security systems, detect and respond to security incidents, and analyze security events. The understanding of common vulnerabilities and attack techniques may be helpful when analyzing security events and identifying potential threats. Learning about the causes and backgrounds of vulnerabilities, along with secure programming techniques, helps build a strong understanding of security risks faced by modern web applications. The Security Operations Center Analyst will learn a security baseline.
Product Manager
A Product Manager is responsible for the strategy, roadmap, and feature definition of a product. Understanding security vulnerabilities and secure development practices is essential when managing software products. This course may help Product Managers make informed decisions about security features and prioritize security-related tasks. The course provides an overview of common vulnerabilities and secure programming patterns. A Product Manager learns security baselines.
Compliance Officer
Compliance Officers ensure that an organization adheres to relevant laws, regulations, and industry standards. A background in web application security is important for security-related compliance efforts. This course helps Compliance Officers understand the security risks associated with web applications. They may need to verify secure coding practices. The security baselines mentioned in the course will be helpful.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Secure Programming of Web Applications - Developers and TPMs.
Comprehensive guide to web application security. It covers a wide range of vulnerabilities and provides detailed explanations of how to find and exploit them. It is commonly used as a textbook in academic institutions and by industry professionals. This book adds significant depth to the course material and serves as a valuable reference tool.
The OWASP Testing Guide comprehensive resource for web application security testing. It provides a detailed methodology for identifying and verifying vulnerabilities. useful reference tool for security professionals and developers. It adds breadth to the course by providing a structured approach to security testing.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser