Angular 10 — стиль и сценарий очистки, представленные в строке

Я пытаюсь понять, как DomSanitizerдействительно работает в Angular 10.

Я безуспешно пытался дезинфицировать следующую строку CSS:

      const testString = 'transform: rotate(70deg);color: blue;';
const result = this.sanitizer.sanitize(SecurityContext.STYLE, testString);

В приведенном выше фрагменте кода константная переменная всегда равна testString. Я ожидаю, что это произойдет : должно содержать только color: blue;и transformСвойство CSS отфильтровывается из строки.

Я также попытался очистить некоторый код JavaScript, предоставленный через строку, подобную следующей:

      const testString = 'alert("hacked!");console.log("logged");';
const result = this.sanitizer.sanitize(SecurityContext.SCRIPT, testString);

Однако в этом примере значение sanitize()функция выдает ошибку с небезопасным значением сообщения, используемым в контексте скрипта .

Я ожидал, что здесь произойдет следующее : resultконстантная переменная должна быть пустой строкой.

1 ответ

Вы можете указать , если Logic проверяет, является ли он синим, а затем ничего не возвращает или желаемые данные взамен.

      if(testString==='blue'){
const result = this.sanitizer.sanitize(SecurityContext.STYLE, testString);

} else {
console.log('whatever you like')
}
Другие вопросы по тегам