javascript - Angular - 如何防止 RxJs fromEvent 中的 XSS 攻击?

标签 javascript angular security rxjs xss

我经常用fromEvent来自 RxJS 的方法。老实说,我期待 Angular 带来一些魔力,但显然没有。使用 fromEvent 时如何防止 XSS 攻击?

代码示例:

<input #myInput />

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

最佳答案

对于您的问题,请使用 fromEvent你得到与 valueChanges 相同的输出在 react 形式中,就安全措施而言,它几乎是相同的。

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

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

如果您将它们包装在 View 中的表达式花括号中,Angular 将清理输出
{{ .. }} 

但它不会清理表单输入,所以这仍然是一个有效的表单输入,并且仍然需要在服务器端进行清理。
<script>alert('kdfkf')</script>

我不建议使用 fromEvent要处理更改,因为在大多数情况下,您只绑定(bind)一次到某个元素(假设在 ngOnInit 中),如果该元素已通过 *ngIf 从 DOM 中删除,除非您有处理重新绑定(bind)的代码,否则您的事件将消失。

这个答案也可能有帮助
Need to insert Script tag in angular 2

还有这个
https://angular.io/guide/security

关于javascript - Angular - 如何防止 RxJs fromEvent 中的 XSS 攻击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58593382/

相关文章:

security - 拒绝文件访问但服务器在 IIS 中正常

python - 屏蔽掉 python 日志中的敏感信息

javascript - 什么会导致 Bootstrap 将额外的元素插入到我的文档中?

javascript - jQuery 显示/隐藏仅适用于第一个选择器

javascript - 为什么ngRX操作具有类型?

angular - 使用嵌套模块的路由应该如何在 Angular 2 中工作?

javascript - 如何在同一个 Contao 页面上获取 jQuery 和 Mootools?

javascript - 当循环为真时 iDangero.us Swiper 幻灯片计数

angular - JHipster非 Angular 登录页面

database - 为什么我不应该让外人访问我的数据库?