diff --git a/docs.json b/docs.json index 879b240c..661e624a 100755 --- a/docs.json +++ b/docs.json @@ -148,7 +148,8 @@ "features/ip-restrictions", "features/key-restrictions", "features/threat-protection", - "features/siem" + "features/siem", + "features/prompt-injection-screening" ] } ] @@ -715,7 +716,8 @@ "features/ip-restrictions", "features/key-restrictions", "features/threat-protection", - "features/siem" + "features/siem", + "features/prompt-injection-screening" ] } ] diff --git a/features/prompt-injection-screening.mdx b/features/prompt-injection-screening.mdx new file mode 100644 index 00000000..a537d95d --- /dev/null +++ b/features/prompt-injection-screening.mdx @@ -0,0 +1,52 @@ +--- +title: "Prompt Injection Screening" +description: "Screen scraped page content for prompt-injection payloads before the content reaches your model. Enforced server-side." +og:title: "Prompt Injection Screening | Firecrawl" +og:description: "Screen scraped page content for prompt-injection payloads before the content reaches your model. Enforced server-side." +--- + +Prompt injection screening examines the content of a scraped page for prompt-injection payloads. The screen runs before Firecrawl gives the content to you, and before your model reads it. + + +Prompt injection screening is an enterprise feature and is gated per organization. Contact your Firecrawl account team to have it enabled for your account. + + +## Why scraped content is a risk + +A scraped page is untrusted input. You control the request. You do not control the page. + +Text on a page can contain instructions. Those instructions target the model that reads the page later. That model is your agent, your extraction step, or your assistant. The page author writes the instructions. Your pipeline delivers them. + +Hidden text is the clearest case. A page can hide text in several ways: + +- White text on a white background +- Text set to a font size of zero +- Text positioned off the visible area of the page +- Comparable tricks that keep text out of sight + +A person who looks at the page never sees this text. A conversion to markdown or to plain text keeps it. The text then arrives in the context of your model as ordinary page content. + +## What the screen does + +- **Firecrawl classifies the content.** Scraped content goes through a content classifier before delivery. +- **Firecrawl flags suspected injection.** The classifier marks content that reads as an instruction to a downstream model. +- **Firecrawl does not withhold content by default.** A flag on the content does not stop the delivery of that content. + +## This is not Lockdown Mode + +Prompt injection screening and Lockdown Mode solve different problems. One feature does not replace the other. + +**Prompt injection screening inspects content.** It reads the scraped text and decides whether the text is safe to hand on. + +**[Lockdown Mode](/features/lockdown) controls egress.** It serves the page from Firecrawl's index and cache. It never makes an outbound request to the target. It exists for compliance-constrained environments, where the request itself can leak sensitive information. + +Two differences apply: + +- Lockdown Mode does not inspect content. A cached page that carries a hidden instruction stays exactly as it was cached. +- Lockdown Mode changes how old a page can be. When a request does not set an age limit, the limit under Lockdown Mode is much longer. A served page can then be older. + +Use Lockdown Mode when the outbound request is the risk. Use prompt injection screening when the page content is the risk. You can use both features together. + +## Selecting the screen + +You select prompt injection screening for each request. Firecrawl can also force the screen on for every request on your account. Ask your Firecrawl account team for this. Firecrawl does not withhold content by default.