Contaoのテーマについてセキュリティ・アドバイス
(Contao公式サイトの記事: Security advice regarding Contao themesの翻訳です。)
2010年7月14日 11:14 Leo Feyer
Contaoのテーママネージャーは簡単にテーマのインポートと管理を可能とするだけではなく、テーマの設計構造のためにシステムを攻撃を受けやすい状態に置きます。このため、以下のContaoのテーマのインポートについてのセキュリティ・アドバイスを読んでください。
基本的な問題
テーマは一般的にデータベースの項目と、アップロードとテンプレートの両方、または一方のディレクトリからのファイルから構成されます。これらのファイルはテーマのインポートの間にサーバーにアップロードされて、悪意のあるコードを含む可能性がありあす。特にContaoのテンプレートのファイルは、すべてのPHPの関数と機能を何の制限もなく実行できる、現実のPHPのファイルです。
テーマの調査
テーマのファイルは.cto
の拡張子を持ちますが、実際は通常のZIP形式のアーカイブファイルです。このため使用されているローカルのコンピューターにダウンロードして、展開してファイルを調査できます。アップロードのディレクトリ(tl_files
)にPHPのファイルが含まれていないことと、テンプレートのファイルがあればその内容を確認します。
念のため、信頼できる作成者からのテーマだけをインストールことを推奨します。 すなわち、iNet RobotsによるContaoのテーマ、"フリーなテーマの月"の間にcontao.orgで提供されるテーマ、 このセキュリティノートのリンクを提供して、他の信頼できるユーザーに調査されているフォーラムからのテーマ等です。
内部からの攻撃
悪意のあるテーマをインストールさせようというクラッカーの外部からの攻撃に加えて、テーマは信頼できるはずであるバックエンドのユーザーによって、管理者の権限を得るといった任意のPHPのコードを実行するために使用される可能性があります。従って、誰にテーマのモジュールにアクセスを許可するか注意してください。
改善の提案
まず最初に言わせていただきたいのは、この問題はテーマのインポートからファイルとテンプレートを除外しても解決しないことです。これらのリソースはテーマと結び付いていることは誰にも明白で、データベースのレコードと一緒にエクスポートとインポートできることが本質的な点です。また、可能な攻撃の数は膨大で、悪意のあるコードを偽装する可能性は殆んど無限なため、テーマを自動的に検査する方法はありません。従って、これを議論する必要はありません。
しかし、それはさておき、テーマのインポート処理のセキュリティを改善できる、どのようなアイデアや提案も歓迎します。コメントをContaoのフォーラムに投稿してください。そうして、コミュニティで議論ができるでしょう。