EC-CUBEの間違ったインストール方法がとても危ないのです

eccube ECCUBE

EC-CUBEのインストール方法を公式が正しく説明していないことが全ての原因だと思っていますが
正しいインストール方法が書かれているサイトと、間違ったインストール方法が書かれているサイトがあります

そして間違ったインストール方法のほうがどこのサーバーでも使える方法なのでこちらの方法を使っている人をフォーラムなどでも多く見ます
リスクについて理解した上で使う分には好きにすればいいと思いますが、ECサイトはブログなどと違って顧客情報を預かるということを自覚したほうがいいのでは?と思うので無駄だと思いますが書いておきます

[itemlink post_id=”24428″]

いい例、悪い例

例を具体的にあげていますが、ぐぐって上の方に出てきたものを上げているだけでそのサイトだけがまずいわけではありません
細かく書くのがめんどうなだけです(^_^;)

正しいインストール方法

ヘテムルレンタルサーバー|独自ドメインでEC-CUBEを運用する場合

なにが正しいかというと

  1. http://example.com/install/でインストール画面が開く事
  2. dataディレクトリにwebからアクセス出来ないこと

間違ったインストール方法1

ヘテムルレンタルサーバー|hetemlドメインで運用したい場合

何が間違っているかというと

  1. http://example.com/html/install/でインストール画面が開く事
  2. dataディレクトリにwebからアクセスできること

※なんとなく説明文が間違っているだけにも見えるので実際にやってみないとダメなパターンなのかよくわかりません

間違ったインストール方法2

エックスサーバー マニュアル | レンタルサーバー 高速・高機能・高安定性の【エックスサーバー】

  1. htmlディレクトリの中にdataディレクトリを移動していること
  2. dataディレクトリにwebからアクセスできること

どちらの例にも書きましたがdataディレクトリにwebからアクセスできることが大問題です

dataディレクトリにwebからアクセスできると

あんまり具体的に書くのがいいことなのかどうか悩みますが…

logファイルが丸見えです

例えばデフォルトでもこんなログが全て丸見えです

2013/03/28 17:44:41 [/custombase/html/admin/index.php] access error. from 127.0.0.1
2013/03/28 17:44:41 [/custombase/html/admin/index.php] login: user=admin(2) auth=0 lastlogin= sid= from 127.0.0.1
2013/03/28 17:44:41 [/custombase/html/admin/home.php] access : user=admin auth=0 sid=b6bf8dfa19b41d7f97139d542500ca06 from 127.0.0.1
2013/03/28 17:44:44 [/custombase/html/admin/ownersstore/index.php] access : user=admin auth=0 sid=b6bf8dfa19b41d7f97139d542500ca06 from 127.0.0.1
2013/03/28 17:45:03 [/custombase/html/admin/ownersstore/index.php] access : user=admin auth=0 sid=b6bf8dfa19b41d7f97139d542500ca06 from 127.0.0.1
2013/03/28 17:45:03 [/custombase/html/admin/ownersstore/index.php] MakePlugin_20121017.tar.gz -> /Users/username/www/custombase/html/upload/temp_plugin/MakePlugin_20121017.tar.gz from 127.0.0.1
2013/03/28 17:45:03 [/custombase/html/admin/ownersstore/index.php] 解凍:/Users/username/www/custombase/html/../data/downloads/tmp/plugin_install/MakePlugin_20121017.tar.gz->/Users/username/www/custombase/html/../data/downloads/tmp/plugin_install/MakePlugin_20121017 from 127.0.0.1
2013/03/28 17:45:04 [/custombase/html/admin/ownersstore/index.php] /Users/username/www/custombase/html/../data/downloads/tmp/plugin_install//source を削除します. from 127.0.0.1
2013/03/28 17:45:04 [/custombase/html/admin/ownersstore/index.php] /Users/username/www/custombase/html/../data/downloads/tmp/plugin_install//templates を削除します. from 127.0.0.1
2013/03/28 17:45:04 [/custombase/html/admin/ownersstore/index.php] /Users/username/www/custombase/html/../data/downloads/tmp/plugin_install//work を削除します. from 127.0.0.1
2013/03/28 17:45:04 [/custombase/html/admin/ownersstore/index.php] /Users/username/www/custombase/html/../data/downloads/tmp/plugin_install/ を削除します. from 127.0.0.1
2013/03/28 17:45:04 [/custombase/html/admin/ownersstore/index.php] /Users/username/www/custombase/html/../data/Smarty/templates_c/default/ を削除します. from 127.0.0.1
2013/03/28 17:45:04 [/custombase/html/admin/ownersstore/index.php] /Users/username/www/custombase/html/../data/Smarty/templates_c/admin/ を削除します. from 127.0.0.1
2013/03/28 17:45:04 [/custombase/html/admin/ownersstore/index.php] /Users/username/www/custombase/html/../data/Smarty/templates_c/sphone/ を削除します. from 127.0.0.1
2013/03/28 17:45:04 [/custombase/html/admin/ownersstore/index.php] /Users/username/www/custombase/html/../data/Smarty/templates_c/mobile/ を削除します. from 127.0.0.1
2013/03/28 17:46:24 [/custombase/html/admin/ownersstore/index.php] access : user=admin auth=0 sid=b6bf8dfa19b41d7f97139d542500ca06 from 127.0.0.1
2013/03/28 17:46:24 [/custombase/html/admin/ownersstore/index.php] FixedBottomButton_20130326123040.tar.gz -> /Users/username/www/custombase/html/upload/temp_plugin/FixedBottomButton_20130326123040.tar.gz from 127.0.0.1
2013/03/28 17:46:24 [/custombase/html/admin/ownersstore/index.php] 解凍:/Users/username/www/custombase/html/../data/downloads/tmp/plugin_install/FixedBottomButton_20130326123040.tar.gz->/Users/username/www/custombase/html/../data/downloads/tmp/plugin_install/FixedBottomButton_20130326123040 from 127.0.0.1

これだけで
管理画面のログインID
・サーバーのパス
・アクセス元のIPアドレス
・何のプラグインをインストールしているのか

などなど大量のデータが取れます
その他もし何らかのカスタマイズをして、デバックのためなどにログに処理を書き出していたら…

backupファイルが取得出来ます

バックアップ管理

EC-CUBEの標準機能でデータベースのバックアップを取る機能がありますが、このファイルを取得出来ます
先日の脆弱性なんて問題にならないほどのダメージですね

顧客データ受注データ、全部見られちゃいます
顧客のパスワード・秘密の質問の答えは暗号化されてますので、成りすまして購入は出来ないですが顧客情報の流出にはなります

CSVアップロード機能で使われたCSVを全て取得出来ます

CSVアップロード

デフォルトでは、商品登録CSVとカテゴリー登録CSVしかありませんが
プラグインで定期購入・佐川連携・ヤマト連携などCSVアップロードするものを使っていたら?
カスタマイズして顧客や受注をCSVで登録できるようにしていたら?

すべて丸見えです

ではどうするべきか

  1. 正しい方法でインストールする(正しくインストールできるサーバーを選ぶ)
  2. どうしてもhtmlディレクトリ内にdataディレクトリを突っ込まなければいけない状況なら.htaccessを使う

.htaccessの書き方

中身はこれだけ

order allow,deny 
deny from all

このファイルを、dataディレクトリの直下に置きます
はい、これだけです

たったこれだけのことを手間を惜しんで個人情報流出しますか?
そういう人はECサイト作るのやめましょうね

間違ったインストールしてる人、それを推奨しているサイトなくなるといいなー

追記1

[itemlink post_id=”24427″]

こちらにこの記事の概要を寄稿しました!

追記2

EC-CUBE2.13からはデフォルトで対応されるようになりました
チェンジセット 22997 – EC-CUBE Trac

追記3 (2020/02/05)

.htaccess が効かないサーバーがあります。
nginx, iis, etc…, apacheでも2.4 (http://blog.netandfield.com/shar/2012/10/24-htaccess.html)
正しくファイルが見れなくなっていることを確認しましょう

コメント

  1. 匿名 より:

    backupファイルはbackupを取るときにつけたファイル名が推定できないと外部から参照はできないのではないでしょうか?

    • のぶ より:

      具体的な方法は書けませんが、ファイル名がわからなくても探すことは出来ます
      それ以前にひどいサイトだとディレクトリ内を表示させる設定になってて丸見えですし。。。

  2. すんなりいかない・・・CORESERVERへのEC-cubeインストール ※おまけで一括パーミッション変更 | STEREO KITCHEN より:
  3. EC-CUBE2.13.1をCORESERVERにインストールしてみた より:
タイトルとURLをコピーしました