How do you write PHP code that is always secure from attacks?
30,000 web apps are hacked every day. source
Of course, you don’t want your apps to be hacked.
Just imagine the pain of finding out what has been stolen or deleted.
Not to mention the impact on your reputation as a developer (and with millions of PHP developers out there, your reputation is too important to risk).
And yet, many developers don’t know how to protect their code. They just “hope” that nothing bad will happen.
But do you really need to feel so uncertain about your code security?
What if you could, instead, feel confident that your code is always as secure as it should be, and finally stop worrying?
You know, knowing exactly what to do instead of just hoping and guessing.
Well, of course you can.
And to see how, let’s take one step back.
How are web apps hacked in the first place?
Hacking a website is like breaking into a building.
Intruders search for vulnerabilities in the perimeter: an open window, a weak lock, a broken fence.
And when a weak point is found, they break in.
It’s the same with web applications.
Attackers study your app, searching for vulnerabilities.
(Yes, even from a remote location and without access to the source code).
As they find one, they exploit it to break in and hack your app.
The more vulnerabilities your code has, the easier it is for attackers to hack it.
So, how do you protect your code?
Let’s continue the building analogy.
To prevent intruders from breaking in, you need to check doors, locks, windows and fences. You want to make sure everything is secure.
And if you want to feel safe, you must know exactly what to check.
That’s what you must do with your PHP code, too.
You don’t want to leave any way in for attackers. Any open door that attackers can use.
You want to make sure that attackers cannot exploit vulnerabilities in your request inputs, Sessions, SQL queries and so on.
But here is the thing:
Attackers know exactly which vulnerabilities to look for.
To stop them, you must know those vulnerabilities too.
And this is where doubts start to kick in:
“Did I protect my code properly? Did I forget to check something?”
These doubts keep you worried and uncertain. And even worse, they keep your code vulnerable.
It’s like leaving the building with the doors unlocked and the windows open.
But now you can see the solution, can’t you?
If you know all the vulnerabilities and how to prevent them, you can finally feel confident and stop worrying.
Which brings us to the main point.
How do you learn the exact coding techniques to prevent these vulnerabilities?
You have two options.
You can learn it all by yourself. But be prepared, because it’s a daunting task.
I know that well, because that’s what I did, since there was nobody to teach me.
But if there is someone guiding you, that’s a completely different story.
You can save a lot of time and energy. And in the end, you will be sure to know exactly what you need.
Do you want to write PHP code that is always secure from attacks?
By the end of the course, you will know:
The exact list of attacks and vulnerabilities that you must prevent.
Which attacks are relevant for PHP developers? How can you be sure not to miss anything?
The course covers all the vulnerabilities that you need to know, so you can finally clear your doubts.
The coding techniques to prevent each vulnerability.
Just knowing which attacks to protect from is not enough.
You also need to know how to stop those attacks.
In the course you will find the theory as well as the PHP code implementation. So you can literally copy & paste the code into your own projects.
“Prior to enrolling I didn’t know how to secure a site using PHP, and trying to figure out how to do so on my own was a daunting task.”
“This type of information was very difficult to figure out on my own via research on the web. I’m very happy this course exists, and I wish I found it sooner than I did.
One thing I particularly like about this course is the fact that I’m learning from someone who has done this stuff before. It’s not just theory in a textbook or something I have to piece together on my own.
I’ve always been a proponent of learning from someone who is doing or has done what you want to do, and I feel confident in my PHP security skills now.“
“I particularly liked the step by step explanation of the examples.”
“I found the course very useful and I learnt a lot. I particularly liked the step by step explanation of the examples.
I will use the information as a reference for future projects.
I recommend this course as I think security is not a priority for a lot of amateurs.
Thank you for this course, you have helped me a lot. Keep up the good work.”
Who is this course for?
This course is for PHP developers who are tired of being constantly worried about the security of their code.
If you want to be free from this feeling, and start feeling confident and safe instead, then this is the course for you.
This course is NOT for you if you want a “magic tool” that automatically makes your apps secure with a click of your mouse.
This course requires you to understand the concepts explained in the lessons and to apply them actively. If you expect a tool that does all the work for you, then do not take this course.
Working PHP code examples.
Theory and practice are both important.
If you only do the theory, how do you know what code to write exactly?
On the other hand, if you only look at some examples, how do you use the same techniques in a different context?
This is why this course covers the theory and provides the working PHP code implementation as well.
Thanks to the examples, you can copy&paste the code into your own projects and use it right away.
And thanks to the theory, you can easily use it in different contexts.
Focus on simplicity.
Web security can be complex.
This course makes your learning process as easy as possible by focusing on simplicity.
By explaining each topic in 3 intuitive steps: how it works, what you need to do, and how to do it.
- “Here is how this attack works and what attackers can do.”
- “Here is the defense technique that will protect you.”
- “And finally, here is a PHP code example that you can use right away.”
It couldn’t be simpler than that.
“A clear understanding that saved my time.”
“I like the full and clear explanation of the topics and the tips/tricks. The course gave me a clear understanding and even a bit of experience, which further saved my time.
Alex, your course is a diamond of knowledge!”
“Easy to follow and well explained.”
“I already knew some of the techniques, but I didn’t know exactly how to implement them. The course is easy to follow and well explained.
I would definitely recommend it to other PHP developers.”
What’s Unique About This Course?
In a word: the simplicity.
Many developers give up on security because they find it too hard to learn.
But unlike other courses that tell you all about web security, PHP Security Mastery is focused on how to make your code secure.
Because that is what you really want.
And to get you there, it uses a unique 3-steps approach to make your learning process as easy (and quick) as possible:
- List the attacks that you need to know, and show how they work.
- Explain what you need to do to stop each of them.
- Provide PHP code examples that you can use in your own apps.
Outline of What You’ll Learn:
- Input and variable validation explained.
- How to check the type of variables.
- How to validate floats and integers.
- How to check the limits of numbers, strings, and other types.
- How to validate JSON packets.
- How to use filters and string functions.
- How to implement custom validation functions.
- How to use regular expressions as filters.
- What are blacklists and whitelists? How and when to use them?
- What to know about type casting as a validation method.
- You will learn about all the Sessions-related attacks.
- How to protect from basic Fixation attacks.
- How to protect from two-step Fixation attacks.
- How to prevent Session Hijacking.
- How to mitigate the damage from Session Hijacking.
- How to protect Sessions with one-time tokens.
- How to implement a Session access timeout.
- How to implement Virtual Sessions.
- A recap of the most important Session configuration directives.
- How do XSS attacks work?
- The difference between reflected and stored XSS attacks.
- How to prevent XSS attacks.
- The importance of HTML sanitization.
- How to sanitize URLs.
- Sanitization in nested contexts.
- Further steps.
CROSS-SITE REQUEST FORGERY (CSRF)
- What CSRF is and what you need to know about it.
- How CSRF attacks work.
- How to protect your app with anti-CSRF tokens.
- HTML and Cookie tokens: differences and uses.
- How to permit Session-based logins with samesite strict enabled.
- Custom headers tokens.
- How to implement a token timeout.
- Login CSRF attacks: what they are and how to prevent them.
- Refer and Origin headers: can you use them?
- Stateless double-check tokens.
REMOTE FILE UPLOAD
- What you need to know about file uploads and security.
- How to validate file names.
- How to validate file extensions.
- How to avoid file name collisions.
- How to increase security with forced file names.
- How to enforce file size limits (and how not to do it).
- How to validate file contents.
- What you need to know about upload locations and security.
- About database storage.
- A list of security-related PHP configuration directives and their suggested values.
- Execution control directives.
- Information exposure directives.
- Defense directives.
- Sessions-related directives.
High Value Bonus Chapters (Available with the Pro version)
The Pro version of the course includes 3 exclusive, high value bonus chapters:
Bonus Chapter 1
- About SQL Injection attacks.
- How to connect to your MySQL/MariaDB database.
- An example of destructive SQL injection attack.
- An example of data-breach SQL injection attack.
- Escaping explained.
- How to use escaping with the MySQLi extension.
- How to use escaping with the PDO extension.
- Prepared statements explained.
- How to use prepared statements with the MySQLi extension.
- How to use prepared statements with the PDO extension.
- What are Blind SQL Injections?
- What are Second Order SQL Injections?
- About database user permissions.
Bonus Chapter 2
- How to encrypt and store user passwords.
- 2-Factor authentication tutorial.
- How to control login sessions.
- Password reset tutorial.
- Limit login attempts with username-based limiting.
- Limit login attempts with IP-based limiting.
- User authentication tips.
Bonus Chapter 3
EXTRA SECURITY TIPS
- PHP exceptions and security.
- Code injection: what you need to know.
- Reverse tabnabbing: what is it?
- GET vs POST: which one is more secure?
- Type juggling and strict comparison.
- System commands and security.
- Email injections.
- About code scanners.
- Security principles to know.
Reasons Why You Should Not Delay
“I’m busy right now, later may be better…”
Most people think that they are busier than usual and that they will have more time in the future.
But think about it. Do you have more time today, than say a year or a week ago?
You are not going to have more time in the future. Now is the best moment to get things done.
“But I have other priorities….”
If you really had other priorities, then you should not even be here reading these words. But, hey, you are here, aren’t you?
Don’t confuse “priorities” with things that you simply would like to do.
You are here because you know that PHP Security matters to you. So maybe this is your real priority, after all.
“I’m not sure I’m up to the task. Maybe the course is too difficult for me…”
Hollywood movies have convinced people that “hacking” and anything related to web security is obscure and incredibly difficult.
But web security is not magic.
There are absolutely no reasons why you shouldn’t be able to master it, especially with a simplicity-focused course like this.
Can You Find the Same Information Online?
There is literally nothing that you can’t find on Google today.
But this course doesn’t just provide you with information. It provides methods and ready-to-use solutions.
It can do that because it’s not only based on information, but also on years of coding experience.
And that is not something you can get by searching on Google.
Is the Course Material Up to Date?
I keep myself updated on PHP and web security, and I make sure the course material is up to date too.
The course has been first written with PHP 7, and it has been periodically reviewed since then.
It is fully compliant with PHP 7 and PHP 8.
“I was a bit intimidated by the subject thinking it was too complex, or that re-factoring my existing applications to enable security would be too difficult to accomplish without breaking my code .
But the individual lessons are short and easy to digest. The code snippets are concise and comprehensible. Things are spread out nicely which makes it easy to read.
I am self taught, and one of the liabilities of that is not knowing what all you need to teach yourself. This course has identified specific areas of concern that can be addressed and handled, which is easier to handle and work with than the nebulous concept of security.
It covers a number of security concerns and does so in a comprehensible manner with tools that I have already been able to apply to one of my applications.”
“I enrolled in the course almost as soon as I found it.
Very clear, specific, and concrete.
I appreciate the clear recommendations on certain points (e.g. setting the cookie samesite option to ‘lax’) as opposed to merely saying what the options but leaving it vague which should be used.”
“I like the simplicity and the practical examples of the course. There are few materials that explain web security in such a simple way.
I have been able to apply the concepts to an existing php application in a short time.
I would definitely recommend it.”
Frequently Asked Questions
For how long will I have access to the course?
You will have lifetime access to all the course lessons and bonus material, including future course updates.
What if the course doesn't work for me?
You can try the course risk-free.
If the course doesn’t work for you (for any reason), just ask for a refund within 30 days and you’ll get all your money back.
It’s as simple as that.
Isn't my framework already securing my code?
Frameworks help you organize your code, but making the code secure it’s always up to you.
Where is the course hosted?
The course is hosted on Teachable, one of the world leading online course platforms.
Do I have to pay a monthly fee?
The price (see the price table below) is a one-time payment only.
You only pay once and you have lifetime access to the course.
I have another question...
I’m here to answer all your questions.
Just send me an email at: firstname.lastname@example.org
I’ll be happy to help.
Alex Friendly 30-days Guarantee.
You can try the course risk-free.
Your enrollment is protected by my Friendly 30-days guarantee.
If for any reason you don’t like the course (and you don’t need to give me any reason at all), just contact me within 30 days and you will get a complete refund.
No questions asked and no catches. And yes, we will still be friends 🙂