糟糕的 React dangerouslySetInnerHTML 示例?

Example of bad React dangerouslySetInnerHTML?

有没有在 ReactJS 中滥用 dangerouslySetInnerHTML 的例子?

每次我查这个,都是有人挥手说"cross site scripting."

我看到 dangerouslySetInnerHTML 用于加载 CSS 文件,css 加载 npm 模块:

import {stylesheet, classNames} from '../static/css/styles.css'
<Head><style dangerouslySetInnerHTML={{__html: stylesheet}} /></Head>

而且我正在考虑将 dangerouslySetInnerHTML 用于社交媒体共享按钮的一些脚本标签,这些标签一直给我的团队带来麻烦。

我们将不胜感激关于如何使用 XSS 攻击页面的代码示例和解释!

<span dangerouslySetInnerHTML={someTextSubmittedByAUser}></span>

想象一下,如果您的页面上有一个评论部分并且有人提交了评论:

<script>while(1){}</script>

并且您只是将其作为内部 HTML 传递给某个节点。现在,任何人只要点击加载该评论的页面,他们的标签页就会被锁定。

人们可以做的邪恶事情要多得多。例如,复制您的 cookie 并将它们发送到远程服务器。