fix(player): sanitize html nodes
This commit is contained in:
parent
32757d62cd
commit
13b589dcb9
1 changed files with 14 additions and 2 deletions
|
|
@ -1,5 +1,17 @@
|
|||
import styles from './marker.module.css';
|
||||
|
||||
function escapeRegExp(string) {
|
||||
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
|
||||
}
|
||||
|
||||
function escapeHtml(string) {
|
||||
return string.replaceAll('&', '&').replaceAll('<', '<').replaceAll('>', '>').replaceAll('"', '"').replaceAll("'", ''');
|
||||
}
|
||||
|
||||
function safeString(string) {
|
||||
return (escapeHtml(escapeRegExp(string)))
|
||||
}
|
||||
|
||||
export default class Marker {
|
||||
_target = null;
|
||||
_selector = null;
|
||||
|
|
@ -92,11 +104,11 @@ export default class Marker {
|
|||
let k = attrs[i];
|
||||
const attribute = k.name;
|
||||
if (attribute === 'class') {
|
||||
str += `<span style="color:#F29766">${'.' + k.value.split(' ').join('.')}</span>`;
|
||||
str += `<span style="color:#F29766">${'.' + safeString(k.value.split(' ').join('.'))}</span>`;
|
||||
}
|
||||
|
||||
if (attribute === 'id') {
|
||||
str += `<span style="color:#F29766">${'#' + k.value.split(' ').join('#')}</span>`;
|
||||
str += `<span style="color:#F29766">${'#' + safeString(k.value.split(' ').join('#'))}</span>`;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue