转义的html标记未正确呈现

转义的html标记未正确呈现,html,tags,escaping,render,Html,Tags,Escaping,Render,我正在尝试转义一些html输出以防止XSS 以下输入: <b><i>Hello World</i></b> 在浏览器中呈现的预期结果: <b><i>Hello World</i></b> &lt;b&gt;&lt;i&gt;Hello World&lt;/i&gt;&lt;/b&gt; 上面的值也是视图源代码中显示的值,因此我很有信

我正在尝试转义一些html输出以防止XSS

以下输入:

<b><i>Hello World</i></b>
在浏览器中呈现的预期结果:

<b><i>Hello World</i></b>
&lt;b&gt;&lt;i&gt;Hello World&lt;/i&gt;&lt;/b&gt;

上面的值也是视图源代码中显示的值,因此我很有信心它不会被双重转义。有人知道为什么我的浏览器没有正确呈现转义的html标记吗?

您必须取消html标记的显示,才能正确呈现转义的html标记。如果你想阻止用户输入恶意代码,你可能应该限制你网站上允许的标记,或者使用某种BBCode,例如。向我们展示你的整个源代码,或者演示。如果是为了安全,去除标记,搜索任何超过2或3个标点的字符串并更改为“…”。然后在末尾执行nl2br以重新格式化文本区域。
&lt;b&gt;&lt;i&gt;Hello World&lt;/i&gt;&lt;/b&gt;