NEW SmartKiller 3.0 is out — zero-edit install, Security Center and Bunker Mode. Read the release notes →
SmartKiller raptor
SmartKiller 3.0 · Released November 2026

The firewall that runs
before your PHP does.

Engineering notes, release write-ups and plain-English guides from the team behind SmartKiller — the self-hosted web firewall for WordPress, Laravel and any PHP site.

$ upload /smartkiller → open /smartkiller/install.php
Illustration · sample data with documentation IP ranges
Security advisory php2shell (CVE-2026-109618 / 109619) is being exploited. Patch PHP and restart your workers. Read the guide →
Protects any PHP stack
WordPressLaravelCustom PHPAny CMSStatic .htmlCloudflare-ready
2minFrom upload to protected, via the install wizard
0Lines of your code to edit in Automatic mode
5×Strikes before an IP hits the permanent Blocklist
24Search & social crawlers always let through
13Default attack signatures — fully editable
503Bunker Mode status code that protects your rankings
The Blog

Latest from the lab

ADVISORY / PHP2SHELL
9.2
↗
Security

php2shell: how to protect your PHP site today

Two critical PHP flaws are being exploited. Check, patch, mitigate and verify, step by step.

FreddyDeveloper8 min
GUIDE / HARDENING
expose_php→disable_functions→safe
↗
Security

Hardening your PHP server: 9 settings worth changing

Patching closes this hole. These settings limit the damage from the next one.

FreddyDeveloper6 min
RELEASE / 3.0.0
3.0
↗
Release

Introducing SmartKiller 3.0

Zero-edit install, the Security Center, Bunker Mode, Incident IDs and a fairer escalation model.

FreddyDeveloper7 min
ENGINEERING / PIPELINE
bots→signatures→rate→allow
↗
Engineering

Inside the request pipeline: every check, in order

What SmartKiller 3.0 does to each request before your application code runs — step by step.

FreddyDeveloper6 min
GUIDE / CLOUDFLARE
IP
Visitor
CF
Cloudflare
SmartKiller
PHP
Site
↗
Guide

Cloudflare + SmartKiller: verified real IPs, zero code

Why you want both layers — and how 3.0 makes the real-IP setup a single, spoof-proof toggle.

FreddyDeveloper5 min
DEEP DIVE / RATE LIMITS
120 / 60s
↗
Deep dive

Rate limiting, done fairly

Sliding windows, separate counters, and why a stricter limit for watched IPs beats a stricter limit for everyone.

FreddyDeveloper6 min
MIGRATION / 2.1 → 3.0
2.1→3.0
↗
Guide

Upgrading from v2.1 to 3.0 in five minutes

Keep your blocklist, trusted IPs, logs and admins. Then delete the old files and the include lines.

FreddyDeveloper4 min
PRODUCT / BAD DAY PLAYBOOK
503
↗
Product

Bunker Mode and Incident IDs: tools for the bad day

Lock the whole site down in one click without hurting SEO — and trace any block back to its cause.

FreddyDeveloper5 min
How 3.0 escalates

Fair to people. Ruthless to bots.

One mistake earns a warning, not a ban. Persistence is what gets an IP removed — and every threshold is yours to tune in Firewall Rules.

00 · Normal

Clean visitor

No history. Full rate limit, zero friction, no CAPTCHA.

01 · 1st offense

Warning

Sees a warning page and joins the Watchlist, where its rate limit is halved.

02–04 · Offenses

Quarantine

Blocked for 1 hour with HTTP 429 and a live countdown. Released automatically.

05 · Offense

Blocklist

Permanently blocked until you review it. Hacking tools and scanners fast-track to quarantine.

Changelog

2.1 → 3.0, at a glance

The short version. The full story is in the release post.

Area
v2.1
v3.0
Install
Include lines pasted into each page
Upload, run the wizard, choose Automatic. No file edits.
Dashboard
Basic admin page
Security Center: Activity, Watchlist, Quarantine, Blocklist, Incidents, IP Lookup, Visitors
Escalation
Temporary block on first trip
Warning → 1 h quarantine → permanent Blocklist, all configurable
Cloudflare
Uncomment a line in getRealIP()
One toggle. Header trusted only from real Cloudflare IP ranges.
Detection
Agents, rate, refresh, URL patterns
+ fake search bots, 404 vulnerability scans, strict page mode
Lockdown
—
Bunker Mode: HTTP 503 for everyone except Trusted IPs
Support
Countdown page
Every block page shows a searchable Incident ID
Safety
—
Fails open if its database is down. Your site keeps working.
Get started

Protected in about two minutes

PHP 7.4+ with mysqli, and MySQL 5.7+ or MariaDB 10.3+. That's the whole list.

Upload

Put the smartkiller folder in your site root.

public_html/smartkiller

Run the wizard

Open the installer and enter your database details.

/smartkiller/install.php

Go Automatic

Create your admin account and choose Automatic protection.

Sign in

Your Security Center is ready.

/smartkiller/dashboard.php

Let the raptor guard the door.

One-time setup. No monthly fees. Works standalone or behind Cloudflare.