バージョン選択

フォーラム

メニュー

オンライン状況

37 人のユーザが現在オンラインです。 (24 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 36
Plrarticle もっと...

サイト内検索

バグ報告 > 管理機能 > DirectoryIndex index な環境で管理画面にログインできない

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
mosh
投稿日時: 2013/5/15 21:07
対応状況: −−−
新米
登録日: 2013/5/15
居住地:
投稿: 3
DirectoryIndex index な環境で管理画面にログインできない
[EC-CUBE] 2.12.3
[レンタルサーバ] さくらのレンタルサーバー スタンダードプラン
[OS] FreeBSD (バージョン不明)
[PHP] 5.2.x
[データベース] MySQL5.5
[WEBサーバ] Apache 1.3.x
[ブラウザ] Firefox 17.0.6 ESR
[現象] 管理画面にログインできない。

EC-CUBE を使ってみようと思い、インストールしたところ、管理画面にログインしようとすると
「ログイン認証の有効期限切れの可能性があります。もう一度ご確認のうえ、再度ログインしてください。」というエラーになりログインできないという現象が起こりました。

私のサイトでは Multiviews を使っているため、.htaccess で

  DirectoryIndex index

という設定を行なっているのですが、これをコメントアウトすると問題は発生しなくなりました。

原因を探ろうと EC-CUBE のソースコードを調べてみたところ、
eccube-2.12.3/data/class/helper/SC_Helper_Session.php:

                if (preg_match('|^' . ROOT_URLPATH . ADMIN_DIR . $exclude . '|', $_SERVER['SCRIPT_NAME'])) {

この部分で

  ROOT_URLPATH . ADMIN_DIR . $exclude

が "/eccube/html/admin/index.php" のようになりますが、 $_SERVER['SCRIPT_NAME'] には "/eccube/html/admin/index" という拡張子が含まれないパスが設定されているためマッチせず、正しく動作しないようです。

DirectoryIndex index の設定をした場合、なぜか環境変数 SCRIPT_NAME に設定されるファイル名の拡張子がなくなってしまうようです。

例えば、.htaccess に DirectoryIndex index と書いた状態で以下のようなスクリプトを実行すると、 /hoge/index という文字列が出力されます。

  <?php
  echo $_SERVER["SCRIPT_NAME"]
  ?>

Webブラウザでアクセスする URI を admin/ で終わらせるのではなく、admin/index.php と拡張子まで含めて指定すれば、SCRIPT_NAME も admin/index.php となり正しく動作します。

なお、手元の Debian GNU/Linux unstable でも同様に試してみましたが、問題は再現しませんでした。

さくらのレンタルサーバーで使用している Apache のバグなのか、PHP のバグなのか、それとも EC-CUBE で対処すべき問題なのか分からないのですが、他に同様の原因ではまる人がいらっしゃるかもしれませんし、フォーラムにはそのような報告はまだ無いようなので、一応ご報告させていただきました。

# ところで、おせっかいかもしれませんが、preg_match に渡すパターン ROOT_URLPATH . ADMIN_DIR . $exclude は、できれば preg_quote などでエスケープした方が安全な気がします。

フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
 » DirectoryIndex index な環境で管理画面にログインできない mosh 2013/5/15 21:07
     Re: DirectoryIndex index な環境で管理画面にログインできない mosh 2013/5/22 20:35
       Re: DirectoryIndex index な環境で管理画面にログインできない AMUAMU 2013/5/23 0:45
         Re: DirectoryIndex index な環境で管理画面にログインできない mosh 2013/5/28 14:07
           Re: DirectoryIndex index な環境で管理画面にログインできない AMUAMU 2013/5/28 14:35

 



ログイン


EC-CUBEペイメント

公式ストアEC-CUBE4系デザインテンプレート続々リリース中

統計情報

総メンバー数は68,797名です
総投稿数は99,688件です

投稿数ランキング

1
seasoft
7333
2
468
2824
3
AMUAMU
2712
4
nanasess
2123
5
umebius
1859
6
yuh
1612
7
red
1430
8
h_tanaka
1065
9
fukap
907
10
tsuji
867
11
shutta
835
12
tao_s
793
13 ramrun 789
14 karin 657
15 sumida 641
16
homan
633
17 DELIGHT 572
18
patapata
502
19
flealog
485
20 tonton 437


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.