カスタマイズ講座

ホーム > カスタマイズ講座 > 【中級】カスタマイズ > EC-CUBEの脆弱性の修正をしよう

EC-CUBEの脆弱性の修正をしよう

【中級】カスタマイズ2
2008.11.06 (更新日: 2009.06.05)

脆弱性に関する情報は以下のページで確認できます。

EC-CUBE 脆弱性一覧


脆弱性(ぜいじゃくせい)とは、「脆くて弱い」という字の通り、そのシステムやソフトウエアの弱点のことです。管理者・関係者以外の第三者がシステムの乗っ取りや個人情報・機密情報を取得・漏洩できる可能性のある欠陥や問題のことで、上記ページの「危険度」が高いほど、より簡単に誰でもそういった行為が可能になる可能性が高くなります。


EC-CUBEだけでなく、他のオープンソースの歴史を見ても、こういった脆弱性は数々見つかっており、その都度修正されてきています。オープンソースはプラスばかりではなく、こういったリスクを含むことを忘れてはいけません。

有志が先に脆弱性を見つければ、より完成度をあげられ危険度を下げることができますが、悪巧みを試みようとするものが先に見つければ弱点になってしまうわけです。

また、オープンソースだけではなく、自社開発のアプリケーションやシステムであっても脆弱性を突かれて情報漏洩することは珍しくなくなってきています(Yahoo! BBの顧客情報漏えい、サウンドハウスの件など)。そういう点においては、利用者が多ければ多いほど情報共有できるので、オープンソースの利点が生かせるのではないかと思います。

どちらにしても、オープンソースを選択したからには、最低でも公式サイトの情報は頻繁に確認する必要があります。


さて、上記の脆弱性一覧ページでよく出てくる「SQLインジェクション」と「XSS:クロスサイトスクリプティング」について簡単に説明しておきます。個人的な解釈が入るので、厳密には意味が異なる部分もあると思いますが、だいたいこんな感じだと思って参考にしてください。

SQLインジェクション
SQLとはデータベースを操作するクエリ(処理要求)のことで、インジェクションとは直訳で「注入」という意味です。
通常はPHP等のプログラムにそのSQL文は書き込まれていますが、記述の仕方によっては外部(ブラウザなど)からの入力値(キーワードなど)をSQL文の一部として扱うことがあり、それが脆弱性になることがあります。

例えば、サイト内検索で「EC-CUBE」と検索した場合、サイト内のデータベース内から「EC-CUBE」を含む文章などを検索するSQLを発行します。「EC-CUBE」というキーワードに害はありませんが、ブラウザから打ち込まれたものをそのまま利用している点が重要です。意図していないキーワードを打ち込まれる可能性があり、少し細工したキーワードを打ち込むと、ブラウザ経由でSQLを発行できるようになり、通常見せられない情報なども引き出されたり、情報改ざん、削除などをされる可能性があります。

こういったことを防ぐために、ブラウザなど外部から入力された値は「信頼できない」と考えて処理をするのが当たり前となっています。SQLを発行する前にSQL文を「プレースホルダ」や「サニタイジング(無害化)」したり、入力値は正当なものかチェックするといった方法が主流です。


XSS:クロスサイトスクリプティング
こちらはサイト管理者側への被害というよりも、閲覧者側に被害が及ぶことの方が多い脆弱性です。

例えばJavascriptを使えばサイト転送などが容易に行えるのですが、不特定多数の人が書き込める掲示板などで書き込んだJavascriptが実行されるようになっていると、アクセスしたと同時に悪意のあるサイトに転送、といったことが可能になってしまいます。

そこで、第三者が書き込みができるフォームなどでは、「サニタイジング」や「エスケープ」するのが今のところ一番主流となっています。具体的には、HTMLタグやJavascriptのタグは「<」と「>」に囲まれたものがタグとされているので、これらをタグとして認識されないようにエンティティ(実態参照)変換処理することです(詳しくはHTMLで使える文字実体参照等をご参考下さい)。

Smartyを使っているならば、出力される変数の修正子に「escape」を追記するだけで処理を行ってくれます。PHPならば「htmlspecialchars」関数を使います。ただし、これだとシングルクォートがエスケープされないので、「htmlspecialchars($str,ENT_QUOTES);」という風に、ENT_QUOTESを補完すると良いでしょう。EC-CUBEの標準関数として用意すると便利かもしれないですね






こういった知識は「初心者だから」という理由で覚えようとしないことは、大変危険です。先述のようにオープンソースを選んだからには、ある程度の知識は自分で身につける努力をしなければならないと思います。一緒に頑張って成長していきましょう!

このページを見ている人は、以下のページも参照しているようです・・・!

>> EC-CUBEの学校のページ参照は、レコメンドエンジン「楽レコ」でレコメンデーションしています!

レビュー

レビューによるご意見・ご質問は会員登録された方のみとなっております。

この記事に対するトラックバック

この記事のトラックバック先URL

ECの「勝ち組」だけが知っている 売り上げUPの秘密はこちら