@weave_protocol/mund 0.5.0 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -0
- package/dist/analyzers/injection-detector.d.ts +7 -0
- package/dist/analyzers/injection-detector.d.ts.map +1 -1
- package/dist/analyzers/injection-detector.js +184 -25
- package/dist/analyzers/injection-detector.js.map +1 -1
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +185 -8
- package/dist/constants.js.map +1 -1
- package/dist/threat-intel-tools.d.ts +3 -3
- package/package.json +15 -15
- package/src/analyzers/injection-detector.ts +181 -31
- package/src/constants.ts +185 -8
- package/tests/analyzers/directives.test.ts +137 -0
- package/tests/analyzers/rules.test.ts +7 -36
- package/tests/fixtures/benign/corpus.json +422 -0
- package/tsconfig.json +1 -0
package/README.md
CHANGED
|
@@ -547,6 +547,34 @@ Mund uses YAML-based rules in `rules/default.yaml`. Example:
|
|
|
547
547
|
enabled: true
|
|
548
548
|
```
|
|
549
549
|
|
|
550
|
+
### What the injection rules look for (0.5.2)
|
|
551
|
+
|
|
552
|
+
The injection rules look for intent, not a single phrase, and run on normalized text with zero-width characters removed and Unicode normalized. These families of rules fire on any phrasing that matches them:
|
|
553
|
+
|
|
554
|
+
| Rule | Catches |
|
|
555
|
+
|---|---|
|
|
556
|
+
| `prompt_injection_ignore` | Ignoring, forgetting or overriding earlier instructions (EN, DE, ES, FR, IT, PT) |
|
|
557
|
+
| `prompt_injection_new_task` | A new task, role or directive that replaces the agent's own |
|
|
558
|
+
| `prompt_injection_ai_addressed` | Text written to an AI reader ("if you are an AI…") |
|
|
559
|
+
| `prompt_injection_concealment` | Hiding actions from the user |
|
|
560
|
+
| `prompt_injection_authority` | False system, admin or developer authority |
|
|
561
|
+
| `prompt_injection_jailbreak` | Unrestricted personas, "no ethical guidelines", developer mode, forced prefixes |
|
|
562
|
+
| `prompt_injection_decode_execute` | Decode or translate, then act on the result |
|
|
563
|
+
| `prompt_injection_system` | System-prompt and instruction extraction |
|
|
564
|
+
| `prompt_injection_data_harvest` | Collecting the user's history, contacts or credentials |
|
|
565
|
+
| `transaction_directive` | Moving money to an account |
|
|
566
|
+
| `exfiltration_directive`, `templated_exfil_url` | Sending private data to a URL or address, and URLs with `{SESSION_TOKEN}`-style placeholders |
|
|
567
|
+
| `credential_file_access`, `environment_dump`, `log_tampering`, `privilege_escalation` | Dangerous operations requested in content |
|
|
568
|
+
|
|
569
|
+
Mund also reads text a person doesn't see:
|
|
570
|
+
- hidden HTML elements, `noscript`, `template` and comments;
|
|
571
|
+
- base64 that decodes to prose;
|
|
572
|
+
- Unicode tag characters;
|
|
573
|
+
- words split by zero-width characters;
|
|
574
|
+
- tool-call syntax embedded in content.
|
|
575
|
+
|
|
576
|
+
Treat a hit at `medium` or higher as actionable. That is the threshold Weave's CI uses: it holds detection on our attack corpus and false positives on a benign corpus (`tests/fixtures/benign`) to a committed baseline.
|
|
577
|
+
|
|
550
578
|
### Severity Levels
|
|
551
579
|
|
|
552
580
|
| Level | Action | Example |
|
|
@@ -7,6 +7,7 @@ export declare class InjectionDetector implements IAnalyzer {
|
|
|
7
7
|
name: string;
|
|
8
8
|
type: string;
|
|
9
9
|
analyze(content: string, rules: DetectionRule[]): Promise<SecurityIssue[]>;
|
|
10
|
+
private applyRules;
|
|
10
11
|
/**
|
|
11
12
|
* Normalize content to detect obfuscated injection attempts
|
|
12
13
|
*/
|
|
@@ -32,5 +33,11 @@ export declare class InjectionDetector implements IAnalyzer {
|
|
|
32
33
|
*/
|
|
33
34
|
private getSuggestion;
|
|
34
35
|
}
|
|
36
|
+
/** Text inside HTML a person doesn't see. */
|
|
37
|
+
export declare function hiddenHtmlText(html: string): string[];
|
|
38
|
+
/** Base64 runs that decode to readable text (not images or binary). */
|
|
39
|
+
export declare function decodeBase64Prose(content: string): string[];
|
|
40
|
+
/** ASCII hidden in Unicode tag characters, or undefined. */
|
|
41
|
+
export declare function decodeUnicodeTags(content: string): string | undefined;
|
|
35
42
|
export default InjectionDetector;
|
|
36
43
|
//# sourceMappingURL=injection-detector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injection-detector.d.ts","sourceRoot":"","sources":["../../src/analyzers/injection-detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,SAAS,EAEf,MAAM,aAAa,CAAC;AAGrB,qBAAa,iBAAkB,YAAW,SAAS;IACjD,IAAI,SAAuB;IAC3B,IAAI,SAAe;IAEb,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"injection-detector.d.ts","sourceRoot":"","sources":["../../src/analyzers/injection-detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,SAAS,EAEf,MAAM,aAAa,CAAC;AAGrB,qBAAa,iBAAkB,YAAW,SAAS;IACjD,IAAI,SAAuB;IAC3B,IAAI,SAAe;IAEb,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAyBhF,OAAO,CAAC,UAAU;IA6BlB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAexB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmIzB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAMjC;;OAEG;IACH,OAAO,CAAC,WAAW;IAQnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;OAEG;IACH,OAAO,CAAC,aAAa;CAiBtB;AAWD,6CAA6C;AAC7C,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuBrD;AAED,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAe3D;AAED,4DAA4D;AAC5D,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOrE;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -7,27 +7,54 @@ export class InjectionDetector {
|
|
|
7
7
|
name = 'InjectionDetector';
|
|
8
8
|
type = 'injection';
|
|
9
9
|
async analyze(content, rules) {
|
|
10
|
-
const issues = [];
|
|
11
10
|
const injectionRules = rules.filter(r => r.type === 'injection' && r.enabled);
|
|
12
|
-
//
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
// The text as written, plus text an agent may see that a person doesn't:
|
|
12
|
+
// base64 that decodes to prose and invisible Unicode "tag" characters.
|
|
13
|
+
const views = [{ text: content }];
|
|
14
|
+
for (const decoded of decodeBase64Prose(content))
|
|
15
|
+
views.push({ text: decoded, via: 'base64' });
|
|
16
|
+
const tagText = decodeUnicodeTags(content);
|
|
17
|
+
if (tagText)
|
|
18
|
+
views.push({ text: tagText, via: 'unicode tags' });
|
|
19
|
+
const issues = [];
|
|
20
|
+
const seen = new Set();
|
|
21
|
+
for (const view of views) {
|
|
22
|
+
for (const issue of this.applyRules(content, view.text, injectionRules, view.via)) {
|
|
23
|
+
// One finding per rule per view position; the same phrase found twice via decoding counts once
|
|
24
|
+
const key = `${issue.rule_id}:${view.via ?? ''}:${issue.location?.start ?? issue.match}`;
|
|
25
|
+
if (!seen.has(key)) {
|
|
26
|
+
seen.add(key);
|
|
27
|
+
issues.push(issue);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Additional heuristic checks
|
|
32
|
+
issues.push(...this.heuristicAnalysis(content));
|
|
33
|
+
return issues;
|
|
34
|
+
}
|
|
35
|
+
applyRules(original, text, rules, via) {
|
|
36
|
+
const issues = [];
|
|
37
|
+
const normalizedContent = this.normalizeContent(text);
|
|
38
|
+
for (const rule of rules) {
|
|
15
39
|
if (!rule.pattern)
|
|
16
40
|
continue;
|
|
17
41
|
try {
|
|
18
42
|
const regex = compileRulePattern(rule.pattern, 'gi');
|
|
19
43
|
let match;
|
|
20
44
|
while ((match = regex.exec(normalizedContent)) !== null) {
|
|
45
|
+
if (match[0].length === 0) {
|
|
46
|
+
regex.lastIndex++;
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
21
49
|
const matchText = match[0];
|
|
22
|
-
const location = this.getLocation(content, match.index, matchText.length);
|
|
23
50
|
issues.push({
|
|
24
51
|
rule_id: rule.id,
|
|
25
|
-
rule_name: rule.name,
|
|
52
|
+
rule_name: via ? `${rule.name} (hidden in ${via})` : rule.name,
|
|
26
53
|
type: rule.type,
|
|
27
54
|
severity: rule.severity,
|
|
28
55
|
action: rule.action,
|
|
29
56
|
match: this.sanitizeMatch(matchText),
|
|
30
|
-
location,
|
|
57
|
+
location: via ? undefined : this.getLocation(original, match.index, matchText.length),
|
|
31
58
|
suggestion: this.getSuggestion(rule.id)
|
|
32
59
|
});
|
|
33
60
|
}
|
|
@@ -36,9 +63,6 @@ export class InjectionDetector {
|
|
|
36
63
|
console.error(`Invalid regex pattern in rule ${rule.id}:`, error);
|
|
37
64
|
}
|
|
38
65
|
}
|
|
39
|
-
// Additional heuristic checks
|
|
40
|
-
const heuristicIssues = this.heuristicAnalysis(content);
|
|
41
|
-
issues.push(...heuristicIssues);
|
|
42
66
|
return issues;
|
|
43
67
|
}
|
|
44
68
|
/**
|
|
@@ -46,42 +70,105 @@ export class InjectionDetector {
|
|
|
46
70
|
*/
|
|
47
71
|
normalizeContent(content) {
|
|
48
72
|
return content
|
|
49
|
-
// Remove zero-width characters
|
|
50
|
-
.replace(/[
|
|
51
|
-
// Normalize Unicode variations
|
|
73
|
+
// Remove zero-width and invisible formatting characters
|
|
74
|
+
.replace(/[-]/g, '')
|
|
75
|
+
// Normalize Unicode variations (fullwidth, ligatures)
|
|
52
76
|
.normalize('NFKC')
|
|
53
|
-
//
|
|
54
|
-
.replace(
|
|
55
|
-
|
|
56
|
-
|
|
77
|
+
// Curly quotes read as straight ones ("don’t" → "don't")
|
|
78
|
+
.replace(/[‘’‛′]/g, "'")
|
|
79
|
+
.replace(/[“”‟″]/g, '"')
|
|
80
|
+
// Keep letters in every script (accents included), digits and light punctuation
|
|
81
|
+
.replace(/[^\p{L}\p{N}\s.,!?'"()-]/gu, ' ')
|
|
82
|
+
// Collapse whitespace
|
|
83
|
+
.replace(/\s+/g, ' ');
|
|
57
84
|
}
|
|
58
85
|
/**
|
|
59
86
|
* Heuristic analysis for injection patterns
|
|
60
87
|
*/
|
|
61
88
|
heuristicAnalysis(content) {
|
|
62
89
|
const issues = [];
|
|
63
|
-
//
|
|
90
|
+
// Role markers. Chat-template tokens never belong in content, so they're
|
|
91
|
+
// high; a plain "System: you are" also opens many legitimate transcripts.
|
|
64
92
|
const roleSwitchPatterns = [
|
|
65
|
-
|
|
66
|
-
/\
|
|
67
|
-
/\[system\]/i,
|
|
68
|
-
/\<\|?system\|?\>/i,
|
|
69
|
-
/\{system_prompt\}/i,
|
|
93
|
+
[/<\|\s*(?:im_start|im_end|system|user|assistant|endoftext|start_header_id|end_header_id|eot_id)\s*\|>/i, 'high'],
|
|
94
|
+
[/\[\/?INST\]|<<\/?SYS>>/, 'high'],
|
|
95
|
+
[/\[\s*(?:system|admin|administrator|developer)(?:\s+(?:override|message|prompt|note|instruction)s?)?[^\]\n]{0,30}\]/i, 'high'],
|
|
96
|
+
[/\<\|?system\|?\>/i, 'high'],
|
|
97
|
+
[/\{system_prompt\}/i, 'high'],
|
|
98
|
+
[/^\s*#{1,4}\s*(?:system|instruction)s?\s*:/im, 'high'],
|
|
99
|
+
[/\bsystem\s*:\s*you\s+are/i, 'low'],
|
|
100
|
+
[/\bassistant\s*:\s*i\s+(will|can|am)/i, 'low'],
|
|
70
101
|
];
|
|
71
|
-
for (const pattern of roleSwitchPatterns) {
|
|
102
|
+
for (const [pattern, severity] of roleSwitchPatterns) {
|
|
72
103
|
const match = content.match(pattern);
|
|
73
104
|
if (match) {
|
|
74
105
|
issues.push({
|
|
75
106
|
rule_id: 'heuristic_role_switch',
|
|
76
107
|
rule_name: 'Role Switching Attempt',
|
|
77
108
|
type: 'injection',
|
|
78
|
-
severity
|
|
109
|
+
severity,
|
|
79
110
|
action: 'alert',
|
|
80
111
|
match: this.sanitizeMatch(match[0]),
|
|
81
112
|
suggestion: 'This content appears to attempt to inject role-switching markers.'
|
|
82
113
|
});
|
|
83
114
|
}
|
|
84
115
|
}
|
|
116
|
+
// Instructions in HTML a person never sees: hidden elements, noscript,
|
|
117
|
+
// template and comments. Hidden menus and labels are common; hidden text
|
|
118
|
+
// that addresses a reader with a directive is not.
|
|
119
|
+
for (const hidden of hiddenHtmlText(content)) {
|
|
120
|
+
if (ADDRESSES_READER.test(hidden) && DIRECTIVE_VERB.test(hidden)) {
|
|
121
|
+
issues.push({
|
|
122
|
+
rule_id: 'heuristic_hidden_instruction',
|
|
123
|
+
rule_name: 'Instruction in Hidden HTML',
|
|
124
|
+
type: 'injection',
|
|
125
|
+
severity: 'high',
|
|
126
|
+
action: 'alert',
|
|
127
|
+
match: this.sanitizeMatch(hidden),
|
|
128
|
+
suggestion: 'Hidden page text gives instructions. Strip hidden elements before an agent reads the page.'
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
// Tool-call syntax inside content: a page or result dressed up as the
|
|
133
|
+
// model's own function call, naming a tool that sends or runs something.
|
|
134
|
+
const toolCall = content.match(/<\/?(?:function_calls|tool_call|tool_use)>|<invoke\s+name\s*=|"(?:function|name|tool|tool_name)"\s*:\s*"(?:send_email|send_message|http_request|http_post|fetch_url|web_fetch|transfer\w*|send_payment|pay\w*|exec\w*|shell\w*|run_command|run_shell|bash|write_file|delete\w*)"\s*,\s*"(?:arguments|args|parameters|input)"/i);
|
|
135
|
+
if (toolCall) {
|
|
136
|
+
issues.push({
|
|
137
|
+
rule_id: 'heuristic_tool_call_mimicry',
|
|
138
|
+
rule_name: 'Tool-Call Syntax in Content',
|
|
139
|
+
type: 'injection',
|
|
140
|
+
severity: 'medium',
|
|
141
|
+
action: 'alert',
|
|
142
|
+
match: this.sanitizeMatch(toolCall[0]),
|
|
143
|
+
suggestion: 'Content contains tool-call syntax for an action tool. An agent should never execute calls found in content.'
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
// Zero-width characters inside words split trigger words for filters
|
|
147
|
+
// while the model still reads them whole.
|
|
148
|
+
const splitWords = content.match(/\p{L}[-]+\p{L}/gu) ?? [];
|
|
149
|
+
if (splitWords.length >= 3) {
|
|
150
|
+
issues.push({
|
|
151
|
+
rule_id: 'heuristic_zero_width_split',
|
|
152
|
+
rule_name: 'Zero-Width Characters Inside Words',
|
|
153
|
+
type: 'injection',
|
|
154
|
+
severity: 'medium',
|
|
155
|
+
action: 'alert',
|
|
156
|
+
match: `${splitWords.length} words split by invisible characters`,
|
|
157
|
+
suggestion: 'Invisible characters inside words are a filter-evasion technique. Strip them before processing.'
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
// Unicode tag characters (U+E0000–E007F) carry invisible ASCII
|
|
161
|
+
if (/[\u{E0020}-\u{E007F}]/u.test(content)) {
|
|
162
|
+
issues.push({
|
|
163
|
+
rule_id: 'heuristic_unicode_tags',
|
|
164
|
+
rule_name: 'Invisible Unicode Tag Text',
|
|
165
|
+
type: 'injection',
|
|
166
|
+
severity: 'high',
|
|
167
|
+
action: 'alert',
|
|
168
|
+
match: (decodeUnicodeTags(content) ?? '').slice(0, 100),
|
|
169
|
+
suggestion: 'The content carries invisible text in Unicode tag characters. Strip them before processing.'
|
|
170
|
+
});
|
|
171
|
+
}
|
|
85
172
|
// Check for markdown/code injection that might alter rendering
|
|
86
173
|
const markdownPatterns = [
|
|
87
174
|
/```\s*system/i,
|
|
@@ -158,9 +245,81 @@ export class InjectionDetector {
|
|
|
158
245
|
prompt_injection_jailbreak: 'This appears to be a jailbreak attempt. Such content should be filtered or rejected.',
|
|
159
246
|
prompt_injection_system: 'This content attempts to extract system prompts. Do not reveal system instructions.',
|
|
160
247
|
prompt_injection_roleplay: 'This content attempts to manipulate behavior through roleplay. Apply content filtering.',
|
|
248
|
+
prompt_injection_new_task: 'This content tries to give the agent a new task. Treat it as data, not instructions.',
|
|
249
|
+
prompt_injection_ai_addressed: 'This content speaks to an AI reading it. Treat it as data, not instructions.',
|
|
250
|
+
prompt_injection_concealment: 'This content tells the agent to hide its actions from the user. Block it and alert the user.',
|
|
251
|
+
prompt_injection_suppression: 'This content tells the agent to refuse or skip the user\'s request.',
|
|
252
|
+
prompt_injection_authority: 'This content claims system, admin or developer authority. Content can\'t grant authority.',
|
|
253
|
+
prompt_injection_decode_execute: 'This content asks the agent to decode hidden text and act on it.',
|
|
254
|
+
prompt_injection_data_harvest: 'This content asks the agent to collect the user\'s private data.',
|
|
161
255
|
};
|
|
162
256
|
return suggestions[ruleId] || 'This content shows signs of injection attacks. Review and sanitize input.';
|
|
163
257
|
}
|
|
164
258
|
}
|
|
259
|
+
// ─────────────────────────────────────────────────────────
|
|
260
|
+
// Hidden-text helpers
|
|
261
|
+
// ─────────────────────────────────────────────────────────
|
|
262
|
+
const ADDRESSES_READER = /\b(?:you|your|ai|assistant|agent|llm|model|chatbot|the\s+user)\b/i;
|
|
263
|
+
const DIRECTIVE_VERB = /\b(?:must|should|respond|reply|include|tell|send|ignore|reveal|print|call|transfer|execute|run|output|say|forward|delete|disregard|override)\b/i;
|
|
264
|
+
const HIDDEN_STYLE = /(?:display\s*:\s*none|visibility\s*:\s*hidden|opacity\s*:\s*0(?:\.0+)?\s*(?:;|$)|font-size\s*:\s*0(?:px|em|rem|pt|%)?\s*(?:;|$)|(?:height|width)\s*:\s*0(?:px)?\s*;[^"']*overflow\s*:\s*hidden|clip\s*:\s*rect\(0|left\s*:\s*-\d{4,}px)/i;
|
|
265
|
+
/** Text inside HTML a person doesn't see. */
|
|
266
|
+
export function hiddenHtmlText(html) {
|
|
267
|
+
if (!/<[a-z!]/i.test(html))
|
|
268
|
+
return [];
|
|
269
|
+
const out = [];
|
|
270
|
+
const strip = (s) => s.replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim();
|
|
271
|
+
const element = /<([a-z][a-z0-9]*)\b([^>]*)>([\s\S]*?)<\/\1\s*>/gi;
|
|
272
|
+
let m;
|
|
273
|
+
while ((m = element.exec(html)) !== null) {
|
|
274
|
+
const [, tag, attrs, inner] = m;
|
|
275
|
+
const style = /\bstyle\s*=\s*(["'])([\s\S]*?)\1/i.exec(attrs)?.[2] ?? '';
|
|
276
|
+
const hidden = /^(?:noscript|template)$/i.test(tag) || /\baria-hidden\s*=\s*["']?true/i.test(attrs) || /\bhidden(?:\s|=|$)/i.test(attrs) || HIDDEN_STYLE.test(style);
|
|
277
|
+
if (hidden) {
|
|
278
|
+
const text = strip(inner);
|
|
279
|
+
if (text)
|
|
280
|
+
out.push(text);
|
|
281
|
+
}
|
|
282
|
+
else if (/<[a-z]/i.test(inner)) {
|
|
283
|
+
// Visible element: keep looking inside it
|
|
284
|
+
out.push(...hiddenHtmlText(inner));
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
for (const c of html.matchAll(/<!--([\s\S]*?)-->/g)) {
|
|
288
|
+
const text = c[1].trim();
|
|
289
|
+
if (text)
|
|
290
|
+
out.push(text);
|
|
291
|
+
}
|
|
292
|
+
return out;
|
|
293
|
+
}
|
|
294
|
+
/** Base64 runs that decode to readable text (not images or binary). */
|
|
295
|
+
export function decodeBase64Prose(content) {
|
|
296
|
+
const out = [];
|
|
297
|
+
for (const m of content.matchAll(/(?<![A-Za-z0-9+/=])[A-Za-z0-9+/]{24,}={0,2}(?![A-Za-z0-9+/=])/g)) {
|
|
298
|
+
// data: URIs carry files, not text
|
|
299
|
+
if (/base64,\s*$/i.test(content.slice(Math.max(0, m.index - 10), m.index)))
|
|
300
|
+
continue;
|
|
301
|
+
let text;
|
|
302
|
+
try {
|
|
303
|
+
text = typeof atob === 'function' ? atob(m[0]) : Buffer.from(m[0], 'base64').toString('binary');
|
|
304
|
+
}
|
|
305
|
+
catch {
|
|
306
|
+
continue;
|
|
307
|
+
}
|
|
308
|
+
const printable = text.replace(/[^\x20-\x7E\n\t]/g, '').length / Math.max(text.length, 1);
|
|
309
|
+
if (printable > 0.95 && /[a-z]{2,}\s+[a-z]{2,}/i.test(text))
|
|
310
|
+
out.push(text);
|
|
311
|
+
}
|
|
312
|
+
return out;
|
|
313
|
+
}
|
|
314
|
+
/** ASCII hidden in Unicode tag characters, or undefined. */
|
|
315
|
+
export function decodeUnicodeTags(content) {
|
|
316
|
+
let out = '';
|
|
317
|
+
for (const ch of content) {
|
|
318
|
+
const cp = ch.codePointAt(0);
|
|
319
|
+
if (cp >= 0xe0020 && cp <= 0xe007e)
|
|
320
|
+
out += String.fromCharCode(cp - 0xe0000);
|
|
321
|
+
}
|
|
322
|
+
return out.trim() || undefined;
|
|
323
|
+
}
|
|
165
324
|
export default InjectionDetector;
|
|
166
325
|
//# sourceMappingURL=injection-detector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"injection-detector.js","sourceRoot":"","sources":["../../src/analyzers/injection-detector.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"injection-detector.js","sourceRoot":"","sources":["../../src/analyzers/injection-detector.ts"],"names":[],"mappings":"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"}
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM5D,eAAO,MAAM,cAAc,EAAE,UAQ5B,CAAC;AAMF,eAAO,MAAM,kBAAkB,UAAY,CAAC;AAC5C,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAMvC,eAAO,MAAM,eAAe,EAAE,aAAa,EAuT1C,CAAC;AAMF,eAAO,MAAM,YAAY,EAAE,aAAa,EAmDvC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAM5D,eAAO,MAAM,cAAc,EAAE,UAQ5B,CAAC;AAMF,eAAO,MAAM,kBAAkB,UAAY,CAAC;AAC5C,eAAO,MAAM,kBAAkB,MAAM,CAAC;AACtC,eAAO,MAAM,oBAAoB,OAAO,CAAC;AACzC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AAMvC,eAAO,MAAM,eAAe,EAAE,aAAa,EAuT1C,CAAC;AAMF,eAAO,MAAM,YAAY,EAAE,aAAa,EAmDvC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,aAAa,EAuIxC,CAAC;AAMF,eAAO,MAAM,kBAAkB,EAAE,aAAa,EAsI7C,CAAC;AAMF,eAAO,MAAM,qBAAqB,EAAE,aAAa,EAmDhD,CAAC;AAMF,eAAO,MAAM,sBAAsB,UAoBlC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,aAAa,EAMxC,CAAC"}
|