Markdown 生HTMLのフィルタリング

最終更新:2026-10-14

生HTMLのフィルタリング GFM 拡張

Markdown が HTML を透過することには XSS のリスクが伴います。<script>、onclick 属性、javascript: リンクはいずれも注入ポイントです。安全なレンダラは危険なタグや属性をフィルタし、その方針はサニタイズと許可リストの 2 種類に分かれます。

所属グループ境界とルール
仕様レベルGFM 拡張
仕様バージョンCommonMark 0.31.2 + GFM

📝 構文

(固定の構文なし——フィルタの方針を理解する)

▶ オンライン例

左で Markdown を編集すると右に即時反映

💡 ポイント

⚠️ Warning ユーザー入力をレンダリングする場面(コメント、エディタなど)では必ずサニタイズが必要です。本サイトの md-playground エディタには DOMPurify が組み込まれています。
ℹ️ Note GitHub の許可リストは厳しめです。script、iframe、style はすべて除去され、イベント属性もすべて剥ぎ取られます。

❓ よくある質問

Q サニタイズと許可リストの違いは何ですか?
A サニタイズ(DOMPurify)は危険なノードだけを除去して他を残します。許可リストは指定されたタグだけを通し、それ以外をすべて削除します。
Q コードブロックの中に書いた <script> は実行されますか?
A 実行されません。コードブロックの内容は丸ごとエスケープして表示されるため、元から安全です。
Q 本サイトの方針は何ですか?
A markdown-it の html:true による透過に加え、フロントエンドで DOMPurify によるサニタイズを行う二重防御です。

📚 関連項目

インラインHTMLCommonMark コア
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%