2

google-code-prettifyは、エスケープされたシーケンスではなく、エスケープ文字自体を「プリティフィケーション」することにより、コードブロック内のHTMLエスケープを処理します。例:

元のHTML<code class="prettyprint lang-sql"> ... &gt; ... </code>は次のようになります。

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

明らかに間違ったレンダリングで。<code>信頼できるソースからのものではなく、XSSベクトルとして使用できるため、エスケープされていないHTMLを内部に返すことはできません。

私の質問は、google-pretty-printに正しいことを強制し、コンテンツを<code>生のテキストではなくHTML(エスケープ)と見なす方法があるかどうかです。

4

1 に答える 1

1

私の質問は、 google-pretty-print を正しいことを強制し、コンテンツを<code>生のテキストではなく HTML (エスケープ) と見なす方法があるかどうかです。

そうあるべきですし、そうです。Cの例はこれを示しています。

#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 を参照するコンテンツ管理システム、テンプレート、またはブログ発行ソフトウェアを調査します。

于 2013-01-09T18:28:40.553 に答える