XMLを受け取る際は外部実体に注意
2009年6月23日(火曜日)
XMLを受け取る際は外部実体に注意
公開: 2009年6月24日15時20分頃
「XMLをparseするアプリのセキュリティ (d.hatena.ne.jp)」。
以前に書いたXML entity explosion attackの話の最後の方でもちらりと触れましたが、外部からXMLを受け取るとき、パーサが外部実体を解釈するとまずいことになる場合があります。
- サーバから外部の任意のURLにGETアクセスしてしまうため、踏み台として使われる危険性がある
- 受け取ったXMLの内容を何らかの形で表示している場合、本来外部から見えないはずのリソースの内容が見えてしまう場合がある
ということですね。特に後者の場合、ディレクトリ・トラバーサルよろしく、サーバ内の任意のファイルの内容が見えてしまう可能性があるので注意が必要です。
SOAPなどで外部からXMLを受け取るAPIは良くあると思いますが、外部からやってきたXMLをパースする際は、DTDや外部実体は全く読みに行かないように設定しておきたいところですね。
※もっとも、XHTMLを読む必要がある場合は©などの実体参照が解釈できなくなってしまうという問題もありますが……。
- 「XMLを受け取る際は外部実体に注意」へのコメント (1件)
- 前(古い): Xbox360版「怒首領蜂 大往生」がPS2版のソースコードパクリだった
- 次(新しい): みなみけ7