Pen Test Debrief

Three ways we still get into “PCI compliant” web apps

Every PCI DSS attestation letter says the same thing on the cover: compliant. What it doesn't say is that “compliant” and “tested manually by someone trying to break in” are two very different bars.

Published12 Aug 2026
Reading time6 min read

In most of the engagements we run, the gap between those two bars is where the real risk lives. Here are three patterns we still see constantly, in applications that passed their compliance scan without issue.

1. Client-side validation masquerading as server-side control

Automated scanners are good at finding missing headers and outdated libraries. They're much worse at noticing that a price, a quantity, or a discount code is only validated in JavaScript running in the browser. We regularly intercept a checkout request, edit the price field directly, and watch the order go through unchanged.

2. Broken object-level authorisation on “compliant” APIs

PCI DSS cares about how card data is transmitted and stored — it doesn't automatically catch an API endpoint that returns another customer's order history because the object ID is guessable and nobody checks ownership server-side. This is consistently the single most common finding across our web and API engagements, compliant or not.

3. Third-party payment widget misconfiguration

Outsourcing card capture to a hosted payment widget is good practice, and it's often what makes PCI scope smaller in the first place. But we still find widgets embedded with permissive CSP rules, or checkout pages that load third-party scripts capable of altering the DOM around the payment iframe — reopening exactly the skimming risk the widget was meant to close.

“Compliant” tells you a control exists on paper. A penetration test tells you whether it holds up against someone actually trying.

None of these findings are exotic. They're the kind of thing a compliance scan structurally can't catch, because a scanner doesn't understand your business logic — it can only check for known signatures and missing configuration. That's the gap manual testing is built to close.

Keep reading

More field notes

Website Development6 Oct 2026 · 7 min read

How much does a website cost in Egypt, and how long does it take?

A focused business website takes 3–5 weeks. Here is what moves the price, and what to ask before you sign.

Read article
Software Development6 Oct 2026 · 7 min read

Custom software or off-the-shelf? How to decide, and what a custom build involves

Buy when your process is standard; build when it is your advantage. A first release usually takes 10–16 weeks.

Read article
Mobile App Development6 Oct 2026 · 7 min read

Native or cross-platform? A practical guide to building a mobile app

Most business apps are best built cross-platform. A first release usually takes 8–12 weeks, including the backend.

Read article
E-commerce6 Oct 2026 · 7 min read

How to launch a secure online store in Egypt: platforms, payments and shipping

Pick the platform by catalogue size and how custom your checkout is. A secure store usually takes 5–8 weeks.

Read article
Cyber Security6 Oct 2026 · 7 min read

How much does a penetration test cost, and what should it include?

Cost follows scope: the number of apps, roles, APIs and IPs. A single web app usually takes 5–10 testing days.

Read article
Incident Response5 Aug 2026 · 5 min read

What the first 60 minutes of a ransomware incident actually look like

Containment decisions, stakeholder communication, and the mistakes that turn a bad day into a bad quarter.

Read article
Research29 Jul 2026 · 5 min read

API authorisation flaws: the gap between “authenticated” and “authorised”

Why so many APIs correctly check who you are, but not what you're allowed to do — and how we test for it.

Read article