0

我正在测试一些东西并试图将它放入摊牌:

<script>alert("hacked!");</script>

当然它没有发出任何警报(摊牌是为了防止这些事情发生),但是<script>标签被完全删除了。我将其用于用户描述,因此脚本标签(及其内容)应该是可见的,只是未执行。

我在想我很可能需要更改一些内置的 Showdown 代码,但在它的代码中找不到任何我应该更改为仅显示脚本标签但不执行它们的地方。

有谁知道任何现有的选项或源代码的一些更改来显示这一点?

4

2 回答 2

0

我在代码中找到了这个地方,它负责散列 HTML 标记,例如:<script></script>.

https://github.com/showdownjs/showdown/blob/a9f38b6f057284460d6447371f3dc5dea999c0a6/src/subParsers/makehtml/hashHTMLBlocks.js

我认为您应该只删除文件中的第 329 行

https://github.com/showdownjs/showdown/blob/a9f38b6f057284460d6447371f3dc5dea999c0a6/src/converter.js

一切都应该工作。

于 2021-01-09T18:23:21.593 回答
0

我找到了答案:我只需<script>要用可见的东西替换标签的开始和结束,比如&lt;script&lt;/script&gt;

这是我使用的代码:

myshowdownhtml.split("<script").join("&lt;script").split("<"+"/script>").join("&lt;/script&gt;");
于 2021-01-11T19:34:16.130 回答