Currently accepting new security engagementsRequest a scope
Insights

Writing on security, infrastructure, web and search

Notes from real work across all four disciplines: what breaks, why the usual tooling misses it, and what to do about it. No fear-based statistics, no vendor fluff, and no post that exists only to rank.

PentestingScopingProcurementSaaSDevOpsLinuxVPSHardeningBusiness logicCI/CDDeploymentReliability
Latest insight

How to scope a web application penetration test without overpaying

Most quotes vary because the scope is vague, not because testers disagree. Here is what actually drives the number, and what to prepare before you ask.

PentestingScopingProcurementSaaS

Written by Raheel Arshad

Penetration testing

Security

How applications actually break: authentication and account lifecycle flaws, OAuth misconfiguration, injection, access control, and how to write a finding a developer can act on.

Case studies

Why a vulnerability scanner will not find your worst bug

Scanners are good at recognising patterns they were taught. The findings that actually cost money are the ones that look like normal application behaviour.

Read the post

The account lifecycle is where authentication actually breaks

Most teams test the login form. The weaknesses tend to live in password reset, email change, OTP verification and session termination: the parts built later.

Read the post

What a useful penetration test report actually contains

A report full of scanner output is not a deliverable. Here is the structure that lets a small engineering team actually fix things, and prove they did.

Read the post
Redacted engagement

OAuth misconfiguration that allowed one account to be linked to another

Single sign-on was configured so that the identity returned by the provider was trusted more than the account it was being attached to. The result was an account linking path that let one identity end up in control of a different user's account. This is the class of issue that reads as a configuration detail and behaves as a full account takeover.

OAuth and single sign-on misconfigurationRead it
Redacted engagement

Password reset and session handling gaps found by testing the whole account lifecycle

Reviewing authentication as a lifecycle rather than a login page surfaced several issues that individually looked minor and together produced a reliable way to hold access to an account after the owner had tried to lock it down. Most of these do not appear in scanner output at all, because every response involved is a legitimate one.

Authentication and session managementRead it
Redacted engagement

SQL injection and stored cross-site scripting behind an authenticated interface

Two classic injection classes, both reachable only after login, which is why neither had ever been reported by an unauthenticated scan. The database defect exposed data across the whole application. The scripting defect ran in the browser of whoever reviewed the affected record, which in this product was always an administrator.

SQL injection and stored cross-site scriptingRead it
Redacted engagement

Object references that were checked in the interface but not on the server

The application hid what a user should not see and enforced very little of it server side. Interface level restriction is a usability feature. It becomes a security control only when the server independently reaches the same conclusion, and here it did not.

Broken access control and insecure direct object referencesRead it
Cloud and DevOps

DevOps

Servers, containers, pipelines and monitoring. Making deployment boring, releases reversible, and outages something a monitor tells you about rather than a customer.

Case studies

The first hour on a new VPS, before anything goes live

A fresh server is reachable from the entire internet within seconds of being created. Here is the short list that separates a server you own from one you share.

Read the post

A deployment you can roll back in sixty seconds

The point of a pipeline is not speed. It is that a bad release stops being a crisis, because undoing it is a routine action rather than an improvisation.

Read the post

Your backup has never been restored, and that is the finding

Backups are the control everyone says they have and almost nobody has tested. Here is the check that takes an afternoon and the reason it keeps turning up something.

Read the post
How this work runs

Taking over a server that was set up quickly and never reviewed

A walkthrough of a Linux and VPS hardening engagement, from the first audit to the point where the server is documented, monitored and provably recoverable. This describes the method rather than a specific client, and no result is claimed for it.

Linux and VPS configuration and hardeningRead it
Web development

Web

Building and maintaining websites and stores that stay fast, accessible and correctly configured after the launch week is over.

Case studies

WordPress, Shopify or custom: choosing without regretting it

The wrong choice is rarely obvious at launch. It becomes obvious the first time you need the platform to do something it was not shaped for.

Read the post

Count the people who can log into your website

The most common problem on an inherited website is not the theme or the plugins. It is the list of administrator accounts nobody has looked at since launch.

Read the post
SEO and growth

SEO

Technical search work: crawlability, indexation, architecture, Core Web Vitals and structured data, plus reporting that separates a real change from noise.

Case studies

Technical SEO on a site that already exists: the fix list in priority order

Most technical SEO advice is a list with no ordering, so people start at the top and spend a week on the item that mattered least.

Read the post

What actually moves Largest Contentful Paint on a real site

LCP is usually fixed by four things. Most of the advice online is about the other forty, which is why people spend a week and move the number by nothing.

Read the post

Published, crawled, indexed: the three numbers to compare first

When a site with good content does not rank, the cause is usually mechanical. Compare these three numbers before commissioning another word.

Read the post

Want this kind of detail about your own systems?

A scoped engagement applies the same reasoning to your product, your infrastructure or your search visibility, with evidence, specific remediation and verification that the fix worked.