Skip to content

Commit

Permalink
CB-4743 adds html sanitizer (#2420)
Browse files Browse the repository at this point in the history
* CB-4743 adds html sanitizer

* CB-4743 adds license to sanitizeHtml

* CB-4743 do not use sanitize to purify the json line data

* CB-4743 fix: toSafeHtmlString test correct cases

---------

Co-authored-by: s.teleshev <[email protected]>
Co-authored-by: mr-anton-t <[email protected]>
  • Loading branch information
3 people authored Mar 5, 2024
1 parent 23328e7 commit 9934ed9
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 0 deletions.
1 change: 1 addition & 0 deletions webapp/packages/core-utils/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,3 +77,4 @@ export * from './removeLineBreak';
export * from './replaceSubstring';
export * from './formatNumber';
export * from './withTimestamp';
export * from './toSafeHtmlString';
28 changes: 28 additions & 0 deletions webapp/packages/core-utils/src/toSafeHtmlString.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
/*
* CloudBeaver - Cloud Database Manager
* Copyright (C) 2020-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0.
* you may not use this file except in compliance with the License.
*/
import { toSafeHtmlString } from './toSafeHtmlString';

describe('toSafeHtmlString', () => {
it('should make html string safe', () => {
const input = '<script>alert("some unsafe action")</script>';
const output = toSafeHtmlString(input);
expect(output).toBe('&lt;script&gt;alert("some unsafe action")&lt;/script&gt;');
});

it('should return empty string', () => {
const input = '';
const output = toSafeHtmlString(input);
expect(output).toBe('');
});

it('should return the same string', () => {
const input = 'some safe string';
const output = toSafeHtmlString(input);
expect(output).toBe(input);
});
});
14 changes: 14 additions & 0 deletions webapp/packages/core-utils/src/toSafeHtmlString.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
/*
* CloudBeaver - Cloud Database Manager
* Copyright (C) 2020-2024 DBeaver Corp and others
*
* Licensed under the Apache License, Version 2.0.
* you may not use this file except in compliance with the License.
*/
export function toSafeHtmlString(dirty: string): string {
const el = document.createElement('div');
el.innerText = el.textContent = dirty;
dirty = el.innerHTML;

return dirty;
}

0 comments on commit 9934ed9

Please sign in to comment.