Secure coding in PHP Training Course
This course equips PHP developers with the essential skills needed to protect their applications from modern internet-based attacks. It delves into web vulnerabilities using PHP-based examples, going beyond the OWASP Top Ten to cover a wide range of issues such as various injection attacks, script injections, session handling attacks, insecure direct object references, file upload issues, and more. The course categorizes PHP-related vulnerabilities into standard types, including missing or improper input validation, incorrect error and exception handling, improper use of security features, and time- and state-related problems. For the latter category, it discusses attacks like open_basedir circumvention, denial-of-service through magic float, and hash table collision attacks. Participants will learn about the most important techniques and functions to mitigate these risks.
A significant focus is placed on client-side security, addressing issues related to JavaScript, Ajax, and HTML5. The course introduces several PHP security extensions such as hash, mcrypt, OpenSSL for cryptography, Ctype, ext/filter, and HTML Purifier for input validation. Best practices for hardening PHP configurations (such as setting php.ini), Apache, and the server in general are also covered. Additionally, an overview of various security testing tools and techniques is provided, including security scanners, penetration testing and exploit packs, sniffers, proxy servers, fuzzing tools, and static source code analyzers.
The introduction of vulnerabilities and configuration practices is supported by numerous hands-on exercises that demonstrate the consequences of successful attacks, show how to apply mitigation techniques, and introduce the use of various extensions and tools.
Participants attending this course will
- Understand fundamental concepts of security, IT security, and secure coding
- Learn about web vulnerabilities beyond the OWASP Top Ten and how to avoid them
- Gain knowledge of client-side vulnerabilities and secure coding practices
- Acquire a practical understanding of cryptography
- Learn to use various security features of PHP
- Become aware of typical coding mistakes and how to prevent them
- Stay informed about recent vulnerabilities in the PHP framework
- Gain practical knowledge in using security testing tools
- Receive sources and further reading materials on secure coding practices
Audience
Developers
This course is available as onsite live training in Slovakia or online live training.Course Outline
- IT security and secure coding
- Web application security
- Web application vulnerabilities
- Client-side security
- Client-side security
- Practical cryptography
- PHP security services
- PHP Environment
- Principles of security and secure coding
- Common coding errors and vulnerabilities
- Security testing techniques and tools
- Knowledge sources
Open Training Courses require 5+ participants.
Secure coding in PHP Training Course - Booking
Secure coding in PHP Training Course - Enquiry
Secure coding in PHP - Consultancy Enquiry
Consultancy Enquiry
Testimonials (3)
I genuinely enjoyed the real life examples.
Marios Prokopiou
Course - Secure coding in PHP
All topics were well covered and presented with a lot of examples. Ahmed was very efficient and managed to keep us focused and attracted at all times.
Kostas Bastas
Course - Secure coding in PHP
The subject of the course was very interesting and gave us many ideas.
Anastasios Manios
Course - Secure coding in PHP
Upcoming Courses
Related Courses
AdaBoost Python for Machine Learning
14 HoursThis instructor-led, live training in Slovakia (online or onsite) is aimed at data scientists and software engineers who wish to use AdaBoost to build boosting algorithms for machine learning with Python.
By the end of this training, participants will be able to:
- Set up the necessary development environment to start building machine learning models with AdaBoost.
- Understand the ensemble learning approach and how to implement adaptive boosting.
- Learn how to build AdaBoost models to boost machine learning algorithms in Python.
- Use hyperparameter tuning to increase the accuracy and performance of AdaBoost models.
Android Security
14 HoursAndroid is an open platform designed for mobile devices like smartphones and tablets. It offers a wide range of security features to facilitate the development of secure software; however, it lacks certain security aspects found in other handheld platforms. This course provides a comprehensive overview of these features and highlights the most critical shortcomings related to the underlying Linux system, file management, and the general environment, as well as issues concerning permissions and other Android software development components.
Common security pitfalls and vulnerabilities are discussed for both native code and Java applications, along with recommendations and best practices to avoid and mitigate these risks. Many of the issues covered are supported by real-life examples and case studies. Additionally, we provide a brief overview of how to use security testing tools to identify any programming bugs that could compromise security.
Participants attending this course will
- Understand fundamental concepts of security, IT security, and secure coding
- Learn about the security solutions available on Android
- Discover how to utilize various security features of the Android platform
- Gain insights into recent vulnerabilities in Java applications on Android
- Learn about typical coding mistakes and how to avoid them
- Understand native code vulnerabilities on Android
- Recognize the serious consequences of insecure buffer handling in native code
- Grasp the architectural protection techniques and their limitations
- Access sources and further readings on secure coding practices
Audience
Professionals
Network Security and Secure Communication
21 HoursImplementing a secure networked application can be challenging, even for developers who have previously worked with various cryptographic components like encryption and digital signatures. To ensure participants grasp the role and usage of these cryptographic primitives, the course begins by laying a solid foundation on the core requirements of secure communication—secure acknowledgment, integrity, confidentiality, remote identification, and anonymity. It also highlights typical issues that can compromise these requirements along with real-world solutions.
Given that cryptography is a critical aspect of network security, the most important cryptographic algorithms in symmetric cryptography, hashing, asymmetric cryptography, and key agreement are discussed. Rather than delving into complex mathematical theories, these elements are presented from a developer's perspective, focusing on practical use-case examples and considerations related to implementing cryptographic solutions, such as public key infrastructures. The course also introduces security protocols across various secure communication areas, with an in-depth look at widely-used protocol families like IPSEC and SSL/TLS.
The discussion includes typical vulnerabilities associated with specific crypto algorithms and cryptographic protocols, such as BEAST, CRIME, TIME, BREACH, FREAK, Logjam, Padding oracle, Lucky Thirteen, POODLE, and similar attacks. Each vulnerability is explained in terms of practical considerations and potential consequences, without getting into detailed mathematical explanations.
Since XML technology plays a central role in data exchange for networked applications, the course covers the security aspects of XML. This includes the use of XML in web services and SOAP messages, along with protection measures like XML signature and XML encryption. It also addresses weaknesses in these protection measures and XML-specific security issues such as XML injection, XML external entity (XXE) attacks, XML bombs, and XPath injection.
Participants attending this course will
- Understand basic concepts of security, IT security, and secure coding
- Grasp the requirements of secure communication
- Learn about network attacks and defenses at different OSI layers
- Gain a practical understanding of cryptography
- Comprehend essential security protocols
- Understand recent attacks against cryptosystems
- Receive information on recent related vulnerabilities
- Understand the security concepts of Web services
- Access sources and further readings on secure coding practices
Audience
Developers, Professionals
C/C++ Secure Coding
21 HoursThis three-day course delves into the fundamentals of securing C/C++ code to protect against malicious users who might exploit various vulnerabilities related to memory management and input handling. The course covers the principles of writing secure code.
Advanced Java Security
21 HoursEven experienced Java programmers do not always fully grasp the various security services provided by Java, nor are they necessarily aware of the different vulnerabilities relevant to web applications written in Java.
This course, in addition to introducing the security components of Standard Java Edition, delves into the security issues surrounding Java Enterprise Edition (JEE) and web services. Before discussing specific services, it covers the fundamentals of cryptography and secure communication. Various exercises focus on declarative and programmatic security techniques in JEE, while both transport-layer and end-to-end security for web services are explored. The use of all components is demonstrated through practical exercises, allowing participants to experiment with the discussed APIs and tools.
The course also examines and explains the most frequent and severe programming flaws associated with the Java language and platform, as well as web-related vulnerabilities. It addresses both typical bugs made by Java programmers and security issues specific to the runtime environment. All vulnerabilities and corresponding attacks are illustrated through straightforward exercises, followed by recommended coding guidelines and mitigation techniques.
Participants attending this course will
- Understand fundamental concepts of security, IT security, and secure coding
- Learn about web vulnerabilities beyond the OWASP Top Ten and how to prevent them
- Comprehend the security principles of web services
- Acquire knowledge on using various security features in the Java development environment
- Gain a practical understanding of cryptography
- Understand the security solutions offered by Java EE
- Learn about common coding mistakes and how to avoid them
- Receive information on recent vulnerabilities in the Java framework
- Obtain practical knowledge in using security testing tools
- Get resources and further reading materials on secure coding practices
Audience
Developers
Standard Java Security
14 HoursDescription
The Java language and the Runtime Environment (JRE) were designed to be free from the most problematic common security vulnerabilities experienced in other languages, such as C/C++. However, software developers and architects should not only know how to utilize the various security features of the Java environment (positive security), but they should also be aware of the numerous vulnerabilities that are still relevant for Java development (negative security).
Before delving into security services, the course provides a brief overview of cryptography fundamentals, establishing a common baseline for understanding the purpose and operation of applicable components. The use of these components is demonstrated through several practical exercises, allowing participants to try out the discussed APIs firsthand.
The course also covers and explains the most frequent and severe programming flaws in the Java language and platform, including both typical bugs committed by Java programmers and issues specific to the language and environment. All vulnerabilities and relevant attacks are illustrated through easy-to-understand exercises, followed by recommended coding guidelines and possible mitigation techniques.
Participants attending this course will
- Understand fundamental concepts of security, IT security, and secure coding
- Learn about Web vulnerabilities beyond the OWASP Top Ten and how to avoid them
- Learn to use various security features of the Java development environment
- Gain a practical understanding of cryptography
- Learn about typical coding mistakes and how to avoid them
- Receive information about recent vulnerabilities in the Java framework
- Get sources and further readings on secure coding practices
Audience
Developers
.NET, C# and ASP.NET Security Development
14 HoursToday, a variety of programming languages are available to compile code for the .NET and ASP.NET frameworks. These environments offer robust tools for security development; however, developers need to understand how to apply architectural and coding techniques effectively to implement the required security features and mitigate vulnerabilities or limit their exploitation.
The primary goal of this course is to equip developers with practical, hands-on exercises that demonstrate how to prevent untrusted code from executing privileged actions, secure resources through robust authentication and authorization mechanisms, facilitate remote procedure calls, manage sessions, explore different implementations for specific functionalities, and much more.
The introduction to various vulnerabilities begins by highlighting typical programming issues that arise when using .NET. The discussion on ASP.NET vulnerabilities also covers a range of environmental settings and their impacts. Additionally, the course delves into ASP.NET-specific vulnerabilities, addressing both general web application security challenges and unique issues such as ViewState attacks and string termination attacks.
Participants attending this course will
- Gain an understanding of fundamental security concepts, IT security, and secure coding practices
- Learn about Web vulnerabilities beyond the OWASP Top Ten and how to prevent them
- Become proficient in using various security features provided by the .NET development environment
- Acquire practical skills in utilizing security testing tools
- Identify common coding mistakes and learn strategies to avoid them
- Stay informed about recent vulnerabilities in .NET and ASP.NET
- Access resources and further reading on secure coding practices
Audience
Developers
The Secure Coding Landscape
14 HoursThis course provides an introduction to common security concepts, offering an overview of vulnerabilities that are not limited by programming languages or platforms. It explains how to manage the risks associated with software security across different phases of the software development lifecycle. While avoiding deep technical details, it highlights some of the most significant and painful vulnerabilities in various software development technologies. The course also addresses the challenges of security testing and introduces techniques and tools that can be used to identify any existing issues in your code.
Participants attending this course will
- Gain an understanding of basic security concepts, IT security, and secure coding practices
- Recognize web vulnerabilities on both the server and client sides
- Appreciate the severe consequences of insecure buffer handling
- Stay informed about recent vulnerabilities in development environments and frameworks
- Learn about typical coding mistakes and how to avoid them
- Understand different approaches and methodologies for security testing
Audience
Managers
Microsoft SDL Core
14 HoursThe comprehensive SDL core training offers an in-depth look into the design, development, and testing of secure software using Microsoft's Secure Development Lifecycle (SDL). It starts with a foundational overview of SDL's key components at level 100, followed by practical design techniques aimed at identifying and rectifying flaws early in the development process.
During the development phase, the course covers common security-related programming errors found in both managed and native code. It presents various attack methods for these vulnerabilities along with corresponding mitigation strategies, all illustrated through interactive exercises that provide a hands-on hacking experience for participants. The course also introduces different security testing approaches and demonstrates the effectiveness of various testing tools. Participants can gain insight into how these tools operate by applying them to previously discussed vulnerable code in practical exercises.
By attending this course, participants will:
Grasp fundamental concepts of security, IT security, and secure coding
Familiarize themselves with the critical steps of Microsoft’s Secure Development Lifecycle
Acquire knowledge of secure design and development practices
Learn principles for secure implementation
Understand methodologies for security testing
- Receive resources and additional reading materials on secure coding practices
Audience
Developers, Managers
Security Testing
14 HoursAfter gaining an understanding of vulnerabilities and attack methods, participants will delve into the general approach and methodology for security testing, along with the techniques that can uncover specific vulnerabilities. Security testing should commence with information gathering about the system (ToC, i.e., Target of Evaluation), followed by a thorough threat modeling process to identify and rate all potential threats, leading to a risk analysis-driven test plan.
Security evaluations can be conducted at various stages of the Software Development Life Cycle (SDLC). Therefore, we will explore design reviews, code reviews, reconnaissance, and information gathering about the system. We will also cover testing the implementation and securing the environment for deployment. The course introduces a range of security testing techniques in detail, such as taint analysis, heuristic-based code review, static code analysis, dynamic web vulnerability testing, and fuzzing. Various tools are presented to automate the security evaluation of software products, with numerous exercises demonstrating how to use these tools to analyze previously discussed vulnerable code. Real-life case studies enhance the understanding of various vulnerabilities.
This course equips testers and QA staff with the necessary skills to effectively plan and execute security tests, select and utilize the most appropriate tools and techniques to uncover even hidden security flaws. Participants will gain practical knowledge that can be applied immediately in their work.
Participants attending this course will
- Grasp fundamental concepts of security, IT security, and secure coding
- Learn about web vulnerabilities beyond the OWASP Top Ten and how to prevent them
- Understand client-side vulnerabilities and secure coding practices
- Comprehend security testing approaches and methodologies
- Acquire practical knowledge in using security testing techniques and tools
- Access sources and further readings on secure coding practices
Audience
Developers, Testers
Secure Web Application Development and Testing
21 HoursProtecting web-accessible applications demands well-prepared security professionals who are always up-to-date with current attack methods and trends. A wide range of technologies and environments exist that facilitate the comfortable development of web applications. It is essential not only to be aware of the security issues specific to these platforms but also to understand all general vulnerabilities, regardless of the development tools used.
This course provides an overview of applicable security solutions in web applications, with a particular emphasis on understanding the most important cryptographic techniques that should be applied. Various web application vulnerabilities are discussed, both on the server side (in line with the OWASP Top Ten) and the client side. These are illustrated through relevant attacks, followed by recommended coding practices and mitigation methods to prevent associated issues. The topic of secure coding is concluded by examining common security-related programming mistakes in areas such as input validation, improper use of security features, and code quality.
Testing plays a crucial role in ensuring the security and robustness of web applications. Different approaches—from high-level auditing through penetration testing to ethical hacking—can be employed to identify various types of vulnerabilities. However, to go beyond the easily discoverable low-hanging fruits, security testing must be well-planned and effectively executed. It is important to remember that while security testers should ideally find all bugs to protect a system, adversaries only need to find one exploitable vulnerability to penetrate it.
Practical exercises will help participants understand web application vulnerabilities, programming mistakes, and most importantly, the mitigation techniques. Hands-on trials of various testing tools, including security scanners, sniffers, proxy servers, fuzzing tools, and static source code analyzers, will provide essential practical skills that can be immediately applied in the workplace.
Participants attending this course will
- Understand basic concepts of security, IT security, and secure coding
- Learn web vulnerabilities beyond OWASP Top Ten and how to avoid them
- Learn client-side vulnerabilities and secure coding practices
- Gain a practical understanding of cryptography
- Understand security testing approaches and methodologies
- Acquire practical knowledge in using security testing techniques and tools
- Stay informed about recent vulnerabilities in various platforms, frameworks, and libraries
- Receive sources and further readings on secure coding practices
Audience
Developers, Testers
Laravel PHP Framework
14 HoursThis instructor-led, live training in Slovakia introduces the fundamentals of Laravel and walks participants through the creation of a Laravel-based web application.
Laravel Livewire
7 HoursThis instructor-led, live training in Slovakia (online or onsite) is aimed at developers who wish to learn and use Livewire to build modern and dynamic application interfaces.
By the end of this training, participants will be able to:
- Build and test livewire components.
- Build applications using the Livewire library.
- Create dynamic components within PHP.
Laravel and Vue.js
14 HoursThis instructor-led, live training in Slovakia (online or onsite) is aimed at web developers who wish to use Laravel and Vue JS for fullstack web development.
By the end of this training, participants will be able to:
- Develop web applications with Laravel and Vue JS.
- Integrate the Laravel backend API into Vue JS.
- Deploy a Laravel application.
Laravel: Middleware Development
14 HoursThis instructor-led, live training in (online or onsite) is aimed at web developers who wish to build middleware and web services in Laravel.
By the end of this training, participants will be able to:
- Use Laravel PHP Aritisan to generate code and components.
- Build RESTful APIs in Laravel that can browse, read, edit, add, and delete.
- Filter and sort results based on URL parameters using RESTful APIs.