Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
禁用div中的所有javascript_Javascript_Html_Xss - Fatal编程技术网

禁用div中的所有javascript

禁用div中的所有javascript,javascript,html,xss,Javascript,Html,Xss,我有没有办法禁用特定div中的所有JavaScript? 我最初以为标签就是为了这个,但结果证明我错了 以下是我想要的: <some-sort-of-tag-here> <script> alert('test'); </script> </some-sort-of-tag-here> 警报(“测试”); 将被渲染为: <script> alert('test'); </script&

我有没有办法禁用特定div中的所有JavaScript?
我最初以为
标签就是为了这个,但结果证明我错了

以下是我想要的:

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

警报(“测试”);
将被渲染为:

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

警报(“测试”);
而不是执行脚本。这将防止任何形式的XSS和其他外部JavaScript(包含在
标题中)能够修改给定的标记

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


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

恐怕这样的标记不存在,您必须自己对内容进行HTML编码

因此:

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

还要注意,如果有一个安全标签,如下所示:

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

警报(“测试”);
任何人都可以通过制作内容来规避:

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

警报(“测试”);

有趣的概念。您希望它能够在不运行代码的情况下显示代码吗?如果是这样的话,
xmp
标记可以是一种方式

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

您可以在JS中检查用户内容的完整性。据我所知,没有具体的标签来阻止它。那完全取决于你。这可能是因为您正在使用一个已经在积极保护用户内容的框架。一般的经验法则是,用户都是狡猾的黑客,你应该验证一切。根据您使用的内容,可能已经有了一个模块。@Lokisinlair是的,您是对的。我目前正在清理我的用户输入。然而,如果我有这样一个标签,我就不必担心代码从其他地方被注入(比如引用者或其他东西)。让生活变得容易多了如果HTML规范有这样一个特性:PWait…什么?HTML在文本区域内呈现?不,只是纯文本,保持标记的编写状态。如果我的内容是:
alert…
?啊,这是问题所在。我在考虑使用能够呈现HTML的东西,但不能执行JavaScript。这样我们就可以在
body
标记的开头使用这个标记,避免在仍然呈现HTML的情况下执行任何形式的脚本content@Stanislastrue,我试图使用disabled=true来避免它,以不允许用户编辑内部内容,但如果内容是由用户提交的,则需要进行检查以删除该标记Yes,我同意。人们可以绕过安全标签。我本来想用一个空字符串替换所有出现的
标记,以防止转义它,但这与替换
标记是一样的,不是吗?哦,好吧。我们回到了原点,大多数服务器端语言都有一种HTML编码内容的方式。但是Javascript没有,但是有很多关于堆栈溢出的自定义解决方案示例。
<xmp>
<script>
    alert('test');
</script>
</xmp>
<textarea disabled="true" style="border: none;background-color:white;">
    <script>
        alert('test');
    </script>
</textarea>