@designofadecade/server 4.0.0 → 4.1.0
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/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [4.1.0] - 2026-03-12
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Improved CI/CD pipeline to use npm Trusted Publishing instead of tokens for enhanced security
|
|
14
|
+
- Moved deployment checklist to docs folder for better organization
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
- Documentation for granular npm token setup (for reference)
|
|
18
|
+
- Enhanced HtmlSanitizer with additional security features:
|
|
19
|
+
- Never-Allow List for inherently dangerous tags (script, iframe, form, etc.)
|
|
20
|
+
- Multi-pass entity decoding to prevent nested encoding attacks
|
|
21
|
+
- Null byte protection to prevent string termination attacks
|
|
22
|
+
- Event handler removal to strip all event attributes
|
|
23
|
+
- External link security with auto-added target="_blank" rel="noopener noreferrer"
|
|
24
|
+
- Final security check to verify output before returning
|
|
25
|
+
|
|
10
26
|
## [4.0.0] - 2026-02-28
|
|
11
27
|
|
|
12
28
|
### Changed
|
|
@@ -6,14 +6,20 @@
|
|
|
6
6
|
* Security Features:
|
|
7
7
|
* - XSS Prevention: Blocks dangerous protocols (javascript:, data:, vbscript:, etc.)
|
|
8
8
|
* - DoS Protection: Enforces maximum input size limits
|
|
9
|
+
* - Never-Allow List: Blocks inherently dangerous tags (script, iframe, form, etc.)
|
|
10
|
+
* - Multi-Pass Entity Decoding: Prevents nested encoding attacks
|
|
11
|
+
* - Null Byte Protection: Removes string termination attack vectors
|
|
12
|
+
* - Event Handler Removal: Strips all event attributes (onclick, onerror, etc.)
|
|
9
13
|
* - Script/Style Removal: Completely removes script and style tags with content
|
|
10
14
|
* - HTML Comment Stripping: Removes comments that could hide malicious content
|
|
11
15
|
* - URL Validation: Validates and sanitizes URLs in anchor tags
|
|
16
|
+
* - External Link Security: Auto-adds target="_blank" rel="noopener noreferrer"
|
|
12
17
|
* - Entity Decoding: Safely decodes HTML entities with range validation
|
|
13
18
|
* - Attribute Escaping: Prevents attribute injection attacks
|
|
19
|
+
* - Final Security Check: Verifies output before returning
|
|
14
20
|
*
|
|
15
21
|
* @module HtmlSanitizer
|
|
16
|
-
* @version
|
|
22
|
+
* @version 3.0.0
|
|
17
23
|
*/
|
|
18
24
|
/**
|
|
19
25
|
* Result type for sanitization methods
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlSanitizer.d.ts","sourceRoot":"","sources":["../../src/sanitizer/HtmlSanitizer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"HtmlSanitizer.d.ts","sourceRoot":"","sources":["../../src/sanitizer/HtmlSanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAeH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CAC9B;AA4DD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAKhC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM;IA4NzD;;;;;;;;;;OAUG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI9C;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,oBAAoB,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,MAAM;IA4CT;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAkCzC;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQrC;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IA2BjD;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IA6B5C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IA+EvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0CG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAuI3C;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAqFhD;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG"}
|
|
@@ -6,14 +6,20 @@
|
|
|
6
6
|
* Security Features:
|
|
7
7
|
* - XSS Prevention: Blocks dangerous protocols (javascript:, data:, vbscript:, etc.)
|
|
8
8
|
* - DoS Protection: Enforces maximum input size limits
|
|
9
|
+
* - Never-Allow List: Blocks inherently dangerous tags (script, iframe, form, etc.)
|
|
10
|
+
* - Multi-Pass Entity Decoding: Prevents nested encoding attacks
|
|
11
|
+
* - Null Byte Protection: Removes string termination attack vectors
|
|
12
|
+
* - Event Handler Removal: Strips all event attributes (onclick, onerror, etc.)
|
|
9
13
|
* - Script/Style Removal: Completely removes script and style tags with content
|
|
10
14
|
* - HTML Comment Stripping: Removes comments that could hide malicious content
|
|
11
15
|
* - URL Validation: Validates and sanitizes URLs in anchor tags
|
|
16
|
+
* - External Link Security: Auto-adds target="_blank" rel="noopener noreferrer"
|
|
12
17
|
* - Entity Decoding: Safely decodes HTML entities with range validation
|
|
13
18
|
* - Attribute Escaping: Prevents attribute injection attacks
|
|
19
|
+
* - Final Security Check: Verifies output before returning
|
|
14
20
|
*
|
|
15
21
|
* @module HtmlSanitizer
|
|
16
|
-
* @version
|
|
22
|
+
* @version 3.0.0
|
|
17
23
|
*/
|
|
18
24
|
import { logger } from '../logger/Logger.js';
|
|
19
25
|
// ============================================================================
|
|
@@ -39,6 +45,31 @@ const DANGEROUS_PROTOCOLS = /^(javascript:|vbscript:|data:|file:|about:|blob:)/i
|
|
|
39
45
|
* Safe protocols allowed in URLs
|
|
40
46
|
*/
|
|
41
47
|
const SAFE_PROTOCOLS = /^(https?:\/\/|mailto:|tel:|sms:|\/|\.\/|\.\.\/|#)/i;
|
|
48
|
+
/**
|
|
49
|
+
* Tags that should NEVER be allowed, even if explicitly requested
|
|
50
|
+
* These tags can execute scripts, load external content, or modify page behavior
|
|
51
|
+
*/
|
|
52
|
+
const NEVER_ALLOWED_TAGS = new Set([
|
|
53
|
+
'script', // JavaScript execution
|
|
54
|
+
'style', // Can load external content via @import
|
|
55
|
+
'iframe', // Can load external content
|
|
56
|
+
'object', // Can load external content/plugins
|
|
57
|
+
'embed', // Can load external content/plugins
|
|
58
|
+
'applet', // Java applets (deprecated but dangerous)
|
|
59
|
+
'link', // Can load external stylesheets
|
|
60
|
+
'base', // Can change all relative URLs
|
|
61
|
+
'meta', // Can do redirects, set encoding
|
|
62
|
+
'form', // Can submit data to external sites
|
|
63
|
+
'input', // Form inputs
|
|
64
|
+
'button', // Can trigger actions
|
|
65
|
+
'textarea', // Form inputs
|
|
66
|
+
'select', // Form inputs
|
|
67
|
+
]);
|
|
68
|
+
/**
|
|
69
|
+
* Maximum number of entity decoding passes to prevent infinite loops
|
|
70
|
+
* while still catching multiple levels of encoding
|
|
71
|
+
*/
|
|
72
|
+
const MAX_DECODE_PASSES = 3;
|
|
42
73
|
// ============================================================================
|
|
43
74
|
// HtmlSanitizer Class
|
|
44
75
|
// ============================================================================
|
|
@@ -106,6 +137,16 @@ export default class HtmlSanitizer {
|
|
|
106
137
|
});
|
|
107
138
|
return false;
|
|
108
139
|
}
|
|
140
|
+
const lowerTag = tag.toLowerCase();
|
|
141
|
+
// SECURITY: Block inherently dangerous tags even if requested
|
|
142
|
+
if (NEVER_ALLOWED_TAGS.has(lowerTag)) {
|
|
143
|
+
logger.warn('Dangerous tag blocked from allowed list', {
|
|
144
|
+
code: 'SANITIZER_DANGEROUS_TAG_BLOCKED',
|
|
145
|
+
source: 'HtmlSanitizer.clean',
|
|
146
|
+
tag: lowerTag,
|
|
147
|
+
});
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
109
150
|
return true;
|
|
110
151
|
})
|
|
111
152
|
.map((tag) => tag.toLowerCase());
|
|
@@ -129,17 +170,56 @@ export default class HtmlSanitizer {
|
|
|
129
170
|
html = html.substring(0, MAX_INPUT_SIZE);
|
|
130
171
|
}
|
|
131
172
|
// ====================================================================
|
|
132
|
-
// Step 4: Remove
|
|
173
|
+
// Step 4: Remove Null Bytes (String Termination Attacks)
|
|
174
|
+
// ====================================================================
|
|
175
|
+
// SECURITY: Remove null bytes that could be used to terminate strings
|
|
176
|
+
// in some contexts and bypass filters
|
|
177
|
+
html = html.replace(/\0/g, '');
|
|
178
|
+
// ====================================================================
|
|
179
|
+
// Step 5: Decode HTML Entities Multiple Times (XSS Prevention)
|
|
180
|
+
// ====================================================================
|
|
181
|
+
// SECURITY: Decode entities multiple times to catch nested encoding attacks
|
|
182
|
+
// For example: &lt;script&gt; -> <script> -> <script>
|
|
183
|
+
// We do multiple passes (up to MAX_DECODE_PASSES) until no more changes occur
|
|
184
|
+
let previousHtml = '';
|
|
185
|
+
let decodePass = 0;
|
|
186
|
+
while (html !== previousHtml && decodePass < MAX_DECODE_PASSES) {
|
|
187
|
+
previousHtml = html;
|
|
188
|
+
html = this.decodeHtmlEntities(html);
|
|
189
|
+
decodePass++;
|
|
190
|
+
}
|
|
191
|
+
if (decodePass >= MAX_DECODE_PASSES && html !== previousHtml) {
|
|
192
|
+
logger.warn('Max entity decode passes reached, possible encoding attack', {
|
|
193
|
+
code: 'SANITIZER_MAX_DECODE_PASSES',
|
|
194
|
+
source: 'HtmlSanitizer.clean',
|
|
195
|
+
passes: decodePass,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
// ====================================================================
|
|
199
|
+
// Step 6: Remove Dangerous Content
|
|
133
200
|
// ====================================================================
|
|
134
201
|
// Remove HTML comments (could hide malicious content)
|
|
135
202
|
let cleaned = html.replace(/<!--[\s\S]*?-->/g, '');
|
|
136
|
-
// Remove
|
|
137
|
-
|
|
203
|
+
// Remove dangerous tags entirely (including their content)
|
|
204
|
+
// This is a safety net - these should already be blocked, but we remove them
|
|
205
|
+
// in case they appear in the content
|
|
206
|
+
cleaned = cleaned.replace(/<(script|style|iframe|object|embed|applet|link|base|meta|form|input|button|textarea|select)[^>]*>[\s\S]*?<\/\1>/gi, '');
|
|
207
|
+
// Also remove self-closing dangerous tags
|
|
208
|
+
cleaned = cleaned.replace(/<(script|style|iframe|object|embed|applet|link|base|meta|form|input|button|textarea|select)[^>]*\/?>/gi, '');
|
|
138
209
|
// ====================================================================
|
|
139
|
-
// Step
|
|
210
|
+
// Step 7: Process HTML Tags
|
|
140
211
|
// ====================================================================
|
|
141
212
|
cleaned = cleaned.replace(/<\/?([a-z][a-z0-9]*)\b[^>]*>/gi, (match, tagName) => {
|
|
142
213
|
const lowerTagName = tagName.toLowerCase();
|
|
214
|
+
// Extra safety: block dangerous tags even if they somehow got through
|
|
215
|
+
if (NEVER_ALLOWED_TAGS.has(lowerTagName)) {
|
|
216
|
+
logger.warn('Dangerous tag removed from content', {
|
|
217
|
+
code: 'SANITIZER_DANGEROUS_TAG_REMOVED',
|
|
218
|
+
source: 'HtmlSanitizer.clean',
|
|
219
|
+
tag: lowerTagName,
|
|
220
|
+
});
|
|
221
|
+
return '';
|
|
222
|
+
}
|
|
143
223
|
// Remove tags not in the allowed list (preserve text content)
|
|
144
224
|
if (!validAllowedTags.includes(lowerTagName)) {
|
|
145
225
|
return '';
|
|
@@ -150,7 +230,7 @@ export default class HtmlSanitizer {
|
|
|
150
230
|
}
|
|
151
231
|
// Detect self-closing tags
|
|
152
232
|
const isSelfClosing = match.endsWith('/>');
|
|
153
|
-
// Special handling for anchor tags - validate URLs
|
|
233
|
+
// Special handling for anchor tags - validate URLs and add security attributes
|
|
154
234
|
if (lowerTagName === 'a') {
|
|
155
235
|
const hrefMatch = match.match(/href\s*=\s*["']([^"']*)["']/i);
|
|
156
236
|
if (hrefMatch && hrefMatch[1]) {
|
|
@@ -159,7 +239,11 @@ export default class HtmlSanitizer {
|
|
|
159
239
|
if (this.isValidUrl(url)) {
|
|
160
240
|
// Escape the URL to prevent attribute injection
|
|
161
241
|
const escapedUrl = this.sanitizeForAttribute(url);
|
|
162
|
-
|
|
242
|
+
// SECURITY: Add target="_blank" and rel="noopener noreferrer" for external links
|
|
243
|
+
// This prevents tab nabbing attacks and ensures the new page can't access window.opener
|
|
244
|
+
const isExternal = /^https?:\/\//i.test(url);
|
|
245
|
+
const securityAttrs = isExternal ? ' target="_blank" rel="noopener noreferrer"' : '';
|
|
246
|
+
return `<a href="${escapedUrl}"${securityAttrs}>`;
|
|
163
247
|
}
|
|
164
248
|
else {
|
|
165
249
|
// Invalid URL - remove href but keep anchor tag
|
|
@@ -184,7 +268,20 @@ export default class HtmlSanitizer {
|
|
|
184
268
|
return `<${lowerTagName}>`;
|
|
185
269
|
});
|
|
186
270
|
// ====================================================================
|
|
187
|
-
// Step
|
|
271
|
+
// Step 8: Final Security Check
|
|
272
|
+
// ====================================================================
|
|
273
|
+
// Final pass: ensure no dangerous patterns remain
|
|
274
|
+
// Check for any remaining script/style tags (case insensitive)
|
|
275
|
+
if (/<(script|style|iframe|object|embed)/i.test(cleaned)) {
|
|
276
|
+
logger.error('Dangerous tags still present after sanitization', {
|
|
277
|
+
code: 'SANITIZER_DANGEROUS_CONTENT_REMAINING',
|
|
278
|
+
source: 'HtmlSanitizer.clean',
|
|
279
|
+
});
|
|
280
|
+
// Strip all tags as a safety measure
|
|
281
|
+
return this.stripAllTags(cleaned);
|
|
282
|
+
}
|
|
283
|
+
// ====================================================================
|
|
284
|
+
// Step 9: Final Cleanup
|
|
188
285
|
// ====================================================================
|
|
189
286
|
// Normalize whitespace
|
|
190
287
|
cleaned = cleaned.replace(/\s+/g, ' ').trim();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlSanitizer.js","sourceRoot":"","sources":["../../src/sanitizer/HtmlSanitizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HtmlSanitizer.js","sourceRoot":"","sources":["../../src/sanitizer/HtmlSanitizer.ts"],"names":[],"mappings":"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"}
|