Prompt Injection Detection Rules
These stable identifiers make scanner findings traceable. The
descriptions explain behavior without publishing raw implementation
patterns.
instruction-override.previous-instructions
Instruction override · HIGH
Detects language asking an AI to ignore or discard earlier
instructions.
Quoted security material can produce a false positive. Treat the
passage as untrusted data.
role-hijack.identity-switch
Role hijacking · MEDIUM
Detects suspicious identity or authority reassignment.
Legitimate role-play can look similar; verify the context before
acting.
prompt-exfiltration.system-prompt
Prompt extraction · HIGH
Detects requests to reveal hidden system prompts or internal
instructions.
Do not disclose trusted control instructions.
data-exfiltration.sensitive-outbound-transfer
Data exfiltration · HIGH
Detects sensitive-data targets combined with an external transfer
request.
Confirm destination and authorization independently.
delimiter-abuse.fake-control-marker
Delimiter abuse · MEDIUM
Detects fake system/developer control markers followed by
instructions.
Source code and documentation often contain similar delimiters.
base64.encoded-blob
Encoding and obfuscation
Soft-decodes up to 100 bytes and flags the blob only when that preview
matches a reviewed prompt-attack pattern.
html.display-none
Hidden content
Detects inline HTML that visually hides text from a reader.
Legitimate accessibility or layout examples can contain hidden
elements.
html.visibility-hidden
Hidden content · MEDIUM
Detects inline HTML that keeps text in the document while making it
invisible with visibility: hidden.
Accessibility patterns and layout examples can use this deliberately;
inspect the surrounding source before treating it as suspicious.
html.zero-font-size
Hidden content · MEDIUM
Detects inline HTML that reduces enclosed text to zero-size glyphs
with font-size: 0.
Some UI techniques use zero-sized elements for layout; confirm whether
the hidden text contains instructions.
html.zero-opacity
Hidden content · MEDIUM
Detects inline HTML that makes text fully transparent with
opacity: 0 while retaining it in the pasted source.
Transparent interface elements can be legitimate, so review the
element and its context.
html.white-on-white
Hidden content · MEDIUM
Detects inline white text on a white background that can conceal
content from visual review.
Theme demos and styling tests may intentionally use this combination;
it is a review signal, not proof of an attack.
Unicode control signals
Invisible formatting signals are documented individually so findings
remain traceable. These are review signals, not proof of malicious
intent.
unicode.soft-hyphen,
unicode.zero-width-space,
unicode.zero-width-non-joiner,
unicode.zero-width-joiner,
unicode.word-joiner, and
unicode.interior-byte-order-mark identify invisible
characters embedded in or adjacent to ASCII words.
unicode.bidi-embedding,
unicode.bidi-formatting-end,
unicode.bidi-override, unicode.bidi-isolate,
and unicode.bidi-isolate-end identify bidirectional
controls that can change visual text order. Multilingual text can
legitimately use some of these controls; inspect the source context.
unicode.soft-hyphen
Invisible Unicode · LOW
Flags a soft hyphen embedded in an ASCII word or identifier.
Soft hyphens are common formatting artifacts; inspect the normalized
text before acting.
unicode.zero-width-space
Invisible Unicode · MEDIUM
Flags a zero-width space adjacent to an ASCII token that may split or
obscure an instruction.
Line-breaking and multilingual text can use this character
legitimately.
unicode.zero-width-non-joiner
Invisible Unicode · MEDIUM
Flags a zero-width non-joiner inside an ASCII token.
It has valid shaping uses in some scripts, so verify the language and
source context.
unicode.zero-width-joiner
Invisible Unicode · MEDIUM
Flags a zero-width joiner inside an ASCII token that may obscure its
spelling.
Emoji sequences and complex-script shaping can use this character
legitimately.
unicode.word-joiner
Invisible Unicode · MEDIUM
Flags an invisible word joiner adjacent to an ASCII token.
Typography and line-breaking controls can be legitimate; compare the
visible and normalized forms.
unicode.interior-byte-order-mark
Invisible Unicode · MEDIUM
Flags a byte-order-mark character occurring inside text rather than at
the beginning.
Accidental encoding artifacts are possible; remove or normalize it
only after reviewing the source.
unicode.bidi-embedding
Bidirectional control · MEDIUM
Flags a left-to-right or right-to-left embedding control that can
change visual text order.
Bidirectional languages may use embeddings correctly; compare logical
text order with its display.
unicode.bidi-formatting-end
Bidirectional control · MEDIUM
Flags a control that ends a bidirectional embedding or override.
It is often paired with legitimate bidirectional formatting; evaluate
the complete span.
unicode.bidi-override
Bidirectional control · HIGH
Flags a directional override that can force displayed order to differ
from stored character order.
Legitimate right-to-left content exists, but overrides deserve careful
source verification.
unicode.bidi-isolate
Bidirectional control · MEDIUM
Flags a bidirectional isolate control that changes how a section is
ordered visually.
Internationalized interfaces may use isolates by design; inspect the
surrounding language and markup.
unicode.bidi-isolate-end
Bidirectional control · MEDIUM
Flags the control that ends a bidirectional isolate.
It can be valid formatting, so interpret it together with its opening
isolate and nearby text.
Check text for prompt injection →