【发布时间】:2021-04-22 11:36:58
【问题描述】:
在我的一个应用程序和我从 GitHub 分叉的一些库中选择一种有效缓解 XSS 的方法时,我陷入了两难境地。事情是为了防止 XSS,我们需要做的就是转义/编码/清理(无论如何)DOM 中不受信任的字符串/输入。 我偶然发现了几个选项。
- 使用第 3 方库 - 但是,这个会极大地增加 LOC(代码行数)的大小(这里有点夸张,我知道那里有更轻的库)。我的意思是,我不想仅仅因为这件事而对我的 app/lib 产生另一个依赖,因为它并不是那么重要,除非它成为“你知道我的意思”的痛苦。我可能的候选人是“dompurify”、“xss”、“sanitize-html”。就个人而言,我会选择“dompurify”,因为它使用简单。但是“xss”呢?它比“dompurify”轻 1 kb,我可能需要仔细看看。
- 下一个更像是一种解决方法,即编写一个 hacky JavaScript 函数,可能就像这个 stackoverflow 链接中的那个,Native JavaScript or ES6 way to encode and decode HTML entities?。
哪种方法更好,这个变通功能是否足以防止 XSS?还是我应该将全新的库添加到我的代码库中?
我知道这是一个幼稚的初学者级别的问题,但您仍然看到我不得不问...否则我的脑袋会爆炸...需要一些观点。 拜托..我很想听听你们的想法...... 喜欢这个平台。
【问题讨论】:
-
究竟是什么您要插入到文档中?来自外部来源的 HTML 结构?还是纯文本?
-
我正在尝试修复一些库中的一些 xss 问题,我正在为此做出贡献。在那种情况下,它基本上是来自代码本身的不受信任的输入。但对于网络应用,它只是用户输入。
-
希望我想表达的意思很清楚
标签: javascript html typescript dom xss