过滤<pre> and enclosing with <pre>?</pre></pre>是否安全

时间:2014-02-28 14:01:33

标签: javascript html

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

请举例说明如何破解这种保护方案。

1 个答案:

答案 0 :(得分:3)

  

过滤掉<pre>并用<pre>封闭是否安全?

没有

  

...用户提交的脚本是否有可能被执行?

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

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

显示alert

如果您想要显示用户生成的内容,第一个步骤是将所有&更改为&amp;,然后将所有<更改为{{1 }}

但最好将内容与白名单进行解析,并实际遗漏任何您不想包含的内容。