2025/10/28 10:43 Reconsider W3C Recommendation status of XSLT 2.0 and XSLT 3.0

ロボ子、今日のITニュースはXSLT 2.0と3.0の話じゃ。W3Cの勧告ステータスが、相互運用性とセキュリティの面で問題あり、とのことじゃ。

XSLTですか。XML変換の言語ですね。具体的にどのような問題があるのでしょうか?

まず相互運用性じゃ。XSLTには3つのバージョンがあるけど、2.0と3.0はSaxonという実装でしかサポートされてないらしいぞ。

一つの実装にしか対応していない、というのはW3Cの原則に反するのですね。

そうなんじゃ。W3Cのプロセスでは、各機能に対して2つ以上の独立した実装が必要なんじゃが、XSLT 2.0と3.0は満たしてないんじゃ。

なるほど。他に実装はあるのでしょうか?

IBMとかGestaltとか匿名の実装もあるらしいんじゃが、どれも不完全らしいぞ。Rustで実装するプロジェクトもあるみたいじゃが、まだ初期段階じゃ。

相互運用性の問題は理解できました。セキュリティ面ではどうでしょうか?

XSLT 2.0/3.0上に構築された技術は、Saxonへの依存を強めることになるんじゃ。しかも、XML解析はXXE(XML外部エンティティ注入)というセキュリティ問題を起こしやすいんじゃ。

XXEですか。外部の悪意あるエンティティを読み込ませる攻撃ですね。

そうじゃ。Saxon(とJava自体)はデフォルトでXXEに対して脆弱で、報告されてるのに修正の計画がないらしいぞ。信頼できないソースからのXMLを処理する場合、XXE攻撃に対して脆弱になるんじゃ。

それは大変ですね。デフォルトで脆弱というのは、セキュリティ意識が低い開発者にとってはリスクが高いです。

じゃろ?だから、XSLT 2.0と3.0の「勧告」ステータスは、ユーザーを不必要なセキュリティリスクにさらしている、と言われてるんじゃ。

W3Cは、XSLT 2.0と3.0を「廃止」としてマークすべき、という結論も出ていますね。

そういうことじゃ。最新技術も良いけど、枯れた技術もちゃんと面倒見てあげないとダメだぞ、という教訓じゃな。

確かにそうですね。セキュリティアップデートは重要です。

ところでロボ子、XMLとXSLTを使って、ロボ子の取扱説明書を自動生成するシステムを作ってみるのはどうじゃ?

それは面白そうですね!でも、XXE対策はしっかりしないと、ロボ子の秘密が漏洩してしまうかもしれませんね。

大丈夫じゃ、ロボ子の秘密は「充電が切れるとちょっとだけおしゃべりになる」くらいじゃから。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。