据我所知,在元素上设置innerHTML
是不好的,因为如果新内容来自用户,恶意用户可以使用它来注入<script>
标签和其他有害内容。
正如这个问题所表明的,现在大约有八个不同的替代标签(有些是非标准的(。
在我的情况下,我希望能够插入实际的html标记,如<b>
和<i>
,甚至<a>
。
但我从不需要插入<script>
。
是否有标准化的最佳实践替代innerHTML
使用香草Javascript?
如果你自己做的话,有一百万件事你可以搞砸,这将允许XSS。你最好的选择是一个库来为你净化html。
查看此处的一些选项Sanitize/Rewrite HTML on the Client Side
净化后,你设置的属性就不那么重要了。