禁用div中的所有javascript

时间:2018-03-03 20:45:17

标签: javascript html xss

我有什么方法可以在特定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?

2 个答案:

答案 0 :(得分: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 :(得分:1)

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

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

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

textarea