Skip to content

Commit 29dd602

Browse files
authored
Merge pull request #38 from DataScience-GT/alert-autofix-6
Potential fix for code scanning alert no. 6: Incomplete multi-character sanitization
2 parents c13436e + 7f6b5c6 commit 29dd602

File tree

1 file changed

+15
-8
lines changed

1 file changed

+15
-8
lines changed

packages/api/src/middleware/security.ts

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,21 @@ export function sanitizeInput(input: any): any {
3737
}
3838

3939
if (typeof input === 'string') {
40-
return input
41-
.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '')
42-
.replace(/javascript:/gi, '')
43-
.replace(/on\w+\s*=/gi, '')
44-
.replace(/data:text\/html/gi, '')
45-
.replace(/<iframe/gi, '')
46-
.replace(/<embed/gi, '')
47-
.replace(/<object/gi, '')
40+
let sanitized = String(input);
41+
let previous: string;
42+
do {
43+
previous = sanitized;
44+
sanitized = sanitized
45+
.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, '')
46+
.replace(/javascript:/gi, '')
47+
.replace(/on\w+\s*=/gi, '')
48+
.replace(/data:text\/html/gi, '')
49+
.replace(/<iframe/gi, '')
50+
.replace(/<embed/gi, '')
51+
.replace(/<object/gi, '');
52+
} while (sanitized !== previous);
53+
54+
return sanitized
4855
.trim()
4956
.slice(0, 10000);
5057
}

0 commit comments

Comments
 (0)