Я часто использую метод fromEvent из RxJS. Если честно, я ожидал волшебства от Angular, но, видимо, нет. Как я могу предотвратить атаки XSS при использовании fromEvent?

Пример кода:

<input #myInput />

fromEvent(this.muInput.nativeElement, 'input').pipe(
  tap(inputEvent => this.saveToDatabase(inputEvent.data)
)
1
bigInt 28 Окт 2019 в 18:04

1 ответ

Лучший ответ

Отвечая на ваш вопрос, используйте fromEvent, вы получите тот же результат, что и valueChanges в реактивной форме, с точки зрения меры безопасности, это почти то же самое.

<input formcontrol="myInput"/>
myInput.valueChanges.subscribe(console.log) 

Против

<input #myInput />
fromEvent(this.muInput.nativeElement, 'input').subscribe(console.log)

Angular очистит вывод, если вы заключите его в выражения фигурной скобки в своем представлении.

{{ .. }} 

Но он не будет дезинфицировать ввод формы, так что это все еще действительный ввод формы, и дезинфекция по-прежнему должна выполняться на стороне сервера.

<script>alert('kdfkf')</script>

Я не рекомендую использовать fromEvent для обработки изменений, поскольку в большинстве случаев вы привязываетесь только один раз к определенному элементу (предположительно в ngOnInit), если этот элемент удален из DOM с помощью *ngIf, ваше событие не исчезнет, ​​если у вас есть код для обработки перепривязки.

Этот ответ также может помочь Необходимо вставить тег Script в angular 2

А также это https://angular.io/guide/security

1
Fan Cheung 30 Окт 2019 в 03:25