2013-01-07 26 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服務已被兩次逃脫。 –

相關問題