13

私の投稿エンティティでは、HTML と MARKDOWN の両方をデータベースに保存します (HTML は MARKDOWN から変換されます)。HTML はページ上でのレンダリング用であり、MARKDOWN は編集機能用です (WMD を使用)。db に保存する前に HTML をサニタイズします。質問: マークダウンもサニタイズする必要がありますか? それともwmd-editorに渡すだけならxss-safeですか?

4

3 に答える 3

15

Markdown には任意の HTML を含めることができます。これは明示的に許可されています。したがって、Web クライアントに送信する前に、それもサニタイズするか、少なくとも HTML に変換した結果をサニタイズする必要があります。

初期の SO で可能だったエクスプロイトの 1 つは、JS コンテンツを Markdown に入れることができ、記事を編集した人は誰でもそれらのスクリプトをプレビューでトリガーすることでした。これがまだ修正されているかどうかはわかりません。

于 2009-08-12T14:48:51.450 に答える
3

「db に保存する前に HTML をサニタイズ」し、次の文で xss-safe について話していることに気付きました。これらは入力検証の 2 つの異なる側面であり、これらを混同してはならず、設計で両方に対処する必要があります。

  • ユーザー入力をデータベースに安全に挿入する必要があります。つまり、入力が適切にエスケープされていることを確認してください (mysql_real_escape_string、ストアド プロシージャ、ORM ライブラリなど)。

  • HTML / JS (WMD への入力を含む) に安全に出力し、XSS エクスプロイトやその他の不快に変わる可能性のあるシーケンスを削除またはエスケープする必要があります。

質問に関しては、Chris に同意します。Markdown には HTML を含めることができるため、サニタイズする必要があります。

于 2009-08-12T15:51:29.710 に答える
0

追加:
この質問はWMDを使用したものです

于 2009-08-13T01:05:37.410 に答える