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')
}