2013-01-07 80 views
2

google-code-prettify通过“美化”转义字符本身而不是转义序列来处理代码块中的HTML转义。例如:如何修复Google美化HTML转义序列的处理

原始的HTML <code class="prettyprint lang-sql"> ... &gt; ... </code>被美化成:

<span class="pun">&amp;</span><span class="pln">gt</span><span class="pun">;</span> 

有明显错误的渲染。我不能在<code>内返回未转义的HTML,因为它不是来自可信来源,可以用作XSS向量。

我的问题是,如果有什么办法强制google-pretty-print做正确的事情,并将<code>的内容视为HTML(转义),而不是原始文本。

回答

1

我的问题是,如果有任何方式强迫谷歌,漂亮地打印到做正确的事,并考虑<code>为HTML(逃脱)的内容,而不是原始文本。

它应该和它一样。该C example说明了这一点,其中

#include &lt;stdio.h&gt; 

是美化到

<span class="pln"> 
</span><span class="com">#include</span><span class="pln"> </span><span class="str">&lt;stdio.h&gt;</span><span class="pln"> 

和我贴你的示例代码进入测试页面,并得到

<span class="pln"> </span><span class="pun">...</span><span class="pln"> </span><span class="pun">&gt;</span><span class="pln"> </span><span class="pun">...</span><span class="pln"> </span> 

我觉得你的问题很可能的结果一些其他层。我会研究在浏览器之前看到你的HTML的任何内容管理系统,模板或博客发布软件。

+0

你是对的,事实证明,这个HTML服务已被两次逃脱。 –

相关问题