javascript - 过滤掉 <pre> 并用 <pre> 括起来是否安全?

标签 javascript html

一些用户生成的文本(可能包含脚本/代码)将向公众展示。如果我过滤掉所有 <pre></pre>标记并用 <pre> 将结果文本括起来和</pre> ,用户提交的脚本有机会被执行吗?

请给我一个如何破解这个保护方案的例子。

最佳答案

Is it safe just filtering out <pre> and enclosing with <pre>?

没有。

...are there any chance user submitted script be executed?

是的,脚本被执行。您可以自己尝试一下,只需将其放在页面中即可:

<pre><script>alert("Hi there");</script></pre>

alert显示。

如果您想显示用户生成的内容,第一步是更改所有 &&amp;然后全部<&lt; .

但最好根据白名单解析内容,并实际上忽略任何您不想包含的内容。

关于javascript - 过滤掉 <pre> 并用 <pre> 括起来是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22097254/

相关文章:

javascript - 如何渲染一个tabpanel下的所有组件?

javascript - 重叠 Div 并简化 jquery 代码

html - 如何在不创建两条单独的行的情况下将 h3 与 p 对齐?

javascript - 如何设置表单 Action 以打开特定大小的新窗口?

html - 使用 bootstrap 3 或 css 悬停时的横向下拉菜单?

javascript - 一年中的某一天集成到 jquery ui 日期选择器中

javascript - jQuery .load() 不加载插件

javascript - PaperJS:当我在 Canvas 之外时会捕获事件

html - Bootstrap 4 六个盒子在同一行(响应式)?

javascript - Canvas2Image 或 HTML5 下载属性的跨浏览器替代品?