Platform

Platform overview How it works Authorization testing Evidence & reports Private scanning Integrations

Solutions

Security agencies Product teams Regulated industries Partner programme

Learn

Blog Knowledge hub Compare

Resources

Pricing Documentation FAQ Security & data What we haven’t proved

Company

About Contact Careers Sign in to the platform Start a $199 pilot

Home / Knowledge hub / Clickjacking

Knowledge hub

Clickjacking

Tricking someone into clicking your button while it is hidden from them.

What it means

Clickjacking tricks somebody into clicking a button in your application by hiding it invisibly under something on an attacker's page. The victim sees a game, a video or a cookie banner. They click where they were led to click, and the click lands on your page, loaded transparently on top.

Because the user really is logged in, whatever that button does gets done, with their session and their permissions.

Dragging, keyboard tricks and overlaid input boxes are variations on the same idea.

Why it matters

The damage depends on what one click can do in your product. Approving a payment. Changing a permission. Accepting an invitation. Granting an integration access to an account.

It is rarely the most serious item in a report, and usually the cheapest to fix. That pairing is why it stays on the list. The effort runs to minutes while the failure runs to whatever your most powerful single click does.

Security reviews find it too. A customer's questionnaire asks whether you send framing protection, and an open answer costs meeting time on top of the risk.

How it shows up

One response header prevents it, and a new subdomain forgets it. The check is whether your pages load inside a frame on somebody else's site. You have to answer that for every hostname you serve, not the main one only.

Marketing sites, status pages and old internal tools are the usual gaps.

Then test it on a page that does something. A framed marketing page is a missing header. A framed page with one confirm button is a demonstration, and a confirmation step on important actions blunts it.

Questions people ask

Clickjacking, answered

Is clickjacking a real vulnerability, or just a report filler?

It is real, and it is often minor. The severity comes entirely from what one click does in your product. A click that confirms a payment matters. A click on a marketing page does not.

It also takes minutes to prevent, which is why it keeps turning up in reports. There is no good reason to leave it open.

A scanner says we are vulnerable. Does loading in a frame prove it?

Not quite. Framing shows the protection is missing. An exploit needs a page where a hidden click actually commits something.

Treat the scanner result as a missing header, then ask the second question. What could one click here do? That is what decides the severity.

Do I need framing protection on an API that returns JSON?

Not for this risk. There is nothing to click in a JSON response, so framing it gains an attacker nothing.

Scanners flag it anyway and the header costs nothing, so most teams send it everywhere and stop arguing about it.

How do I block framing but still let a partner embed our page?

Use the content security policy frame-ancestors directive and name the origins you allow. It takes a list, which the older X-Frame-Options header does not.

Keep the list short and review it. Every origin on it can frame your page.

Does our CSRF protection already cover clickjacking?

No. A CSRF token proves the request came from your own page, and in a clickjacking attack it did. The victim's real browser sends a real request from your real page.

PortSwigger draws the same distinction: clickjacking needs the user to click, and CSRF does not. Different problems, different fixes.

Can your pages load in a frame?

We check every hostname you serve, not only the main one, and show what a single hidden click could commit. Each finding comes with evidence a developer can act on the same day.

Or start with a $199 pilot on one application: thirty days, success criteria agreed before day one, credited against the annual if you convert.