diff --git a/src/utils/security.test.ts b/src/utils/security.test.ts index 428c373..30eaeeb 100644 --- a/src/utils/security.test.ts +++ b/src/utils/security.test.ts @@ -10,6 +10,7 @@ describe('Security Utils', () => { expect(sanitizeInput('foo & bar')).toBe('foo & bar'); expect(sanitizeInput('"quotes"')).toBe('"quotes"'); expect(sanitizeInput("'single quotes'")).toBe(''single quotes''); + expect(sanitizeInput('`backticks`')).toBe('`backticks`'); expect(sanitizeInput('>')).toBe('>'); }); @@ -25,6 +26,12 @@ describe('Security Utils', () => { const expected = '<script>alert("XSS")</script>'; expect(sanitizeInput(input)).toBe(expected); }); + + it('handles mixed content with backticks', () => { + const input = '`alert(1)`'; + const expected = '`alert(1)`'; + expect(sanitizeInput(input)).toBe(expected); + }); }); describe('isValidEmail', () => { diff --git a/src/utils/security.ts b/src/utils/security.ts index ec68c79..475e12b 100644 --- a/src/utils/security.ts +++ b/src/utils/security.ts @@ -14,7 +14,8 @@ export function sanitizeInput(input: string): string { .replace(//g, ">") .replace(/"/g, """) - .replace(/'/g, "'"); + .replace(/'/g, "'") + .replace(/`/g, "`"); } // Common disposable email providers and invalid domains