Blog

I created a PHP script that would allow the CSF / LFD firewall plugin on my server to report IPs that brute-force logins or port scan my server to the AbuseIPDB website. This tutorial shows how I achieved this.

In a recent project, there was a need to make ajax calls to a remote server in a sequential manner to synchronise data. Each call would wait for the previous one to complete, before triggering the next one. See the code here.

In a recent project, I was asked to modify uploaded PDFs to dynamically insert a user specified password to keep files secure. This tutorial shows you how this can be achieved using PDF libraries from Setasign.

There are many ways to help secure your WordPress website from hackers and other malicious users, including plugins and server configurations. If you’re on a unix based server with Apache installed, you can use some basic htaccess settings to improve security further.

By now, your WordPress blog or website should be GDPR compliant (the law came into affect today). WordPress 4.9.6 makes it easy for you to fulfil some of your GDPR obligations by providing owners with new tools.

Subversion (SVN) is not directly supported by cPanel and EasyApache 4, but it’s relatively easy to install and setup. This tutorial guides you through the process for installing an SVN server on Apache 2.4 running on CentOS 6.

Amazon makes it really easy to send SMS messages worldwide using their SNS or Simple Notification Service. This tutorial shows you how you can send a SMS in less than 10 lines of code. This particular example uses composer to install the AWS SDK.

In a recent project I’ve been building a Customer Service Portal where “agents” are allowed to perform certain actions on a user’s account. One of the required features was to send a password reset email to the user. Luckily, this feature is easy to implement thanks to Laravel’s built-in traits.

Having a strong password policy for your application is a important security requirement for any application. This tutorial shows you how you can apply this to Larvel’s PasswordController, which handles password resets.