禁用div中的所有javascript

问题描述 投票:1回答:2

有什么方法可以禁用特定div中的所有类型的JavaScript吗? 我最初认为<noscript>标签是为了那个,但事实证明我错了。

这是我正在寻找的:

<some-sort-of-tag-here>
    <script>
        alert('test');
    </script>
</some-sort-of-tag-here>

将呈现为:

<script>
    alert('test');
</script>

而不是执行脚本。这将阻止任何形式的XSS和其他外部JavaScript(已包含在head中)能够修改给定的标记。

我可能在这里完全错了,这样的标签可能根本不存在,但请在这里帮助我。我觉得这样的标签是XSS最简单的解决方案。无需担心标签内部执行的任何脚本(这意味着所有用户内容都可以包含在该标签中),而所有包含网站的javascript都可以根据需要修改页面内容。

我将如何继续创建一个标签,其中所有内容仅被视为纯HTML,而不是在其中执行任何形式的JavaScript?

javascript html xss
2个回答
2
投票

我担心这样的标签不存在,你必须自己对内容进行html编码。

这样:

<script>
    alert('test');
</script>

变成这样:

&lt;script&gt;
    alert('test');
&lt;/script&gt;

另请注意,如果有安全标记,请执行以下操作:

<safe>
    <script>
        alert('test');
    </script>
</safe>

任何人都可以通过制作内容来规避它:

</safe>
<script>
    alert('test');
</script>
<safe>

1
投票

有趣的概念。您是否希望能够在不运行代码的情况下显示代码?如果是这样,xmp标签可能是单向的。

<xmp>
<script>
    alert('test');
</script>
</xmp>

但是xmp已被弃用,并不保证可以在所有浏览器上运行(尽管大多数都是正确的)。所以黑客就是使用带有添加格式的textarea。像这样:

<textarea disabled="true" style="border: none;background-color:white;">
    <script>
        alert('test');
    </script>
</textarea>
© www.soinside.com 2019 - 2024. All rights reserved.