Angular - как предотвратить XSS-атаки в RxJ от событий? - PullRequest
1 голос
/ 28 октября 2019

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

Пример кода:

<input #myInput />

fromEvent(this.muInput.nativeElement, 'input').pipe(
  tap(inputEvent => this.saveToDatabase(inputEvent.data)
)

1 Ответ

1 голос
/ 30 октября 2019

На ваш вопрос, используйте 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 в угловых значениях 2

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

...