Ticket #841 (closed 改善提案: 修正済)

Opened 10 years ago

Last modified 10 years ago

管理画面のディレクトリ名をパラメータに

Reported by: nanasess Owned by: nanasess
Priority: Milestone: EC-CUBE2.11.0
Component: 管理画面 Version: 2.4.4
Keywords: Cc:
修正済み:

Description

現在, 管理画面のディレクトリは admin で固定だが, パラメータなどで設定可能としたい

Change History

comment:1 Changed 10 years ago by nanasess

  • Owner changed from somebody to nanasess
  • Status changed from new to assigned
  • Milestone changed from EC-CUBE2.5.0beta to EC-CUBE2.5.0

r19738 で対応しました.

下記ディレクトリ名を変更し,

  • html/admin
  • html/user_data/packages/admin

data/class/SC_Initial.php の ADMIN_DIR 定数の値を変更して使用します

comment:2 Changed 10 years ago by kajiwara

  • Milestone changed from EC-CUBE2.5.0 to EC-CUBE2.5.0beta

インストーラにてディレクトリ名を変更するような形が望ましいと思います。 β版にて対応したいと思いますので、一旦マイルストーンを2.5.0betaに戻します。

comment:3 Changed 10 years ago by tao

  • Owner changed from nanasess to tao
  • Status changed from assigned to new

対応します。

comment:4 Changed 10 years ago by tao

  • Status changed from new to assigned

comment:5 Changed 10 years ago by tao

  • Status changed from assigned to closed
  • Type changed from バグ指摘 to 改善提案
  • Resolution set to 修正済

r19854, r19855, r19856, r19857 で対応。

r19854 でインストール時の

  • html/admin
  • html/user_data/packages/admin

のディレクトリ名のリネーム及びSSL制限、IP制限の設定を追加。 設定値はmtb_constantsに保存しようかと思いましたが、更新処理の事を考えてinstall.phpに保存しました。

r19855, r19856, r19857 で管理画面のshopマスタからの各パラメータの変更に対応。 IP制限の方法をちょっと変更。あと凡ミスも修正。 lfUpdateAdminData()を呼ぶ場所は変えた方が良いかも。ディレクトリ名を変えた場合は新しいURLにリダイレクトした方が良いかもしれません。

comment:6 Changed 10 years ago by tao

r19859 で、adminディレクトリをリネームする際に「cart」等の既存ディレクトリを指定した際の処理を追加。 HTTPS_URLが「 http://」の場合にSSLを強制すると管理画面にアクセス出来なくなるので、HTTPS_URLが「http://」の場合はSSL強制をオフに

あと、ゴチャゴチャしていた物を少し整理。

comment:7 follow-up: ↓ 8 Changed 10 years ago by nanasess

  • Status changed from closed to reopened
  • Resolution 修正済 deleted

管理画面のディレクトリが, デフォルト値の admin のままだと, 重複チェックでエラーになりインストールできないようです

comment:8 in reply to: ↑ 7 ; follow-up: ↓ 9 Changed 10 years ago by tao

nanasess への返信

管理画面のディレクトリが, デフォルト値の admin のままだと, 重複チェックでエラーになりインストールできないようです

これ、僕も悩んだのですが、必ずデフォルトの「admin」から変更してもらう方がセキュリティ上は良いかな?と思ってそのままにしてあります。

adminもそのまま設定出来る方が良いでしょうか?皆さんのご意見が欲しいです。

comment:9 in reply to: ↑ 8 ; follow-up: ↓ 11 Changed 10 years ago by AMUAMU

tao への返信

これ、僕も悩んだのですが、必ずデフォルトの「admin」から変更してもらう方がセキュリティ上は良いかな?と思ってそのままにしてあります。

adminもそのまま設定出来る方が良いでしょうか?皆さんのご意見が欲しいです。

インストールプロセスは、深いことを考えず最低限の入力でインストール出来ることが求められると思います。 よってデフォルト値のadminでもインストール出来ないと「難しいソフト」という事になるかと思います。 セキュリティ向上の選択肢を与えつつ、基本はそのままというのがあるべき姿だと思います。 もしadminを必ず変更するという仕様にするのであれば、admin_NNNN としてNNNNをランダムで予め生成してデフォルト値としてフォームにセットしておくような仕組みが必要だと個人的には思います

comment:10 follow-up: ↓ 15 Changed 10 years ago by kajiwara

株式会社ロックオンの梶原です。

本件、現状認識している範囲の残課題をとりあえず上げさせていただきます。

ちなみに、まずadminの設定の話ですが、基本的にはAMUAMUさんのおっしゃる通り、adminのままでも登録できるようにというのが良いと思います。
(ユーザ層から考えて)
その観点で、以下記載します。

残課題:
○管理画面ディレクトリにデフォルトで「admin」が入っている状態にする。
⇒やはり、何か入れておいてあげるのが親切かと思っています。
⇒ディレクトリ名変更を推奨とするような文言追加は別途検討としたいです。

○重複チェックの修正
⇒入力した管理画面ディレクトリと現在設定されている管理画面ディレクトリが重複している場合は重複チェックでエラーとせず、上書き可能とする。
(html以下のディレクトリが被るとまずいので、その他ディレクトリの重複チェックは引き続き行う。)
⇒要は初期の「admin」が弾かれないようにする。

○管理ディレクトリ設定変更後、インストーラの完了画面から管理画面TOPへ遷移しないのを修正する。(単なる変更忘れだと思います。)

○インストーラ3ページ目
ECサイトの設定、管理画面の設定、Webサーバの設定 の3つの設定にレイアウトを分けたい。

○adminディレクトリを削除するため、注意文言が必要そう。
(SVNローカル環境で行ってしまって、少し焦りました。。。)

以上です。
よろしければ、ご確認お願いします。

また、ご意見等もいただければと思います。

comment:11 in reply to: ↑ 9 Changed 10 years ago by tao

AMUAMU への返信

もしadminを必ず変更するという仕様にするのであれば、admin_NNNN としてNNNNをランダムで予め生成してデフォルト値としてフォームにセットしておくような仕組みが必要だと個人的には思います

こっちの方法が良いと思います。 要はインストール時の手間を減らしてスムーズにインストール出来る様にした方が良いという事だと思います。 そう考えると、インストールの段階では管理画面ディレクトリの入力欄自体不要かな?とも思います。(システム側でランダムなディレクトリ名を自動で設定しても良いかな?と)

どうでしょう?

comment:12 follow-up: ↓ 13 Changed 10 years ago by nanasess

html/user_data/packages/admin/js/file_manager.js 内のパスに admin がベタ書きになっているため, こちらも修正する必要がありそうです.

js ファイルの記述を動的に変更するのはナンセンスなので, これらのパスは tpl ファイルに移動する感じでしょうか.

comment:13 in reply to: ↑ 12 ; follow-up: ↓ 14 Changed 10 years ago by tao

nanasess への返信

js ファイルの記述を動的に変更するのはナンセンスなので, これらのパスは tpl ファイルに移動する感じでしょうか.

ありがとうございます。修正しておきます。

あと梶原様が指摘したインストール画面について r19871 で修正しておきました。

comment:14 in reply to: ↑ 13 Changed 10 years ago by tao

tao への返信 r19873 で修正しました。

で、今更なんですが、本来のこのチケットの目的から言ったら、/user_data/packages/adminは、リネームせずにそのままadminで良いのではないでしょうか?

comment:15 in reply to: ↑ 10 Changed 10 years ago by Seasoft

kajiwara への返信 こちらを参照する前に実装・コミットしましたが、結果として一部をカバーできたと思います。

comment:16 follow-up: ↓ 17 Changed 10 years ago by Seasoft

インストール後の設定変更は、「基本情報管理」配下よりも、「システム設定」配下が適している内容に感じます。

comment:17 in reply to: ↑ 16 ; follow-up: ↓ 18 Changed 10 years ago by tao

Seasoft への返信

インストール後の設定変更は、「基本情報管理」配下よりも、「システム設定」配下が適している内容に感じます。

僕もそう思ったんですが、適当な画面が無かったので、基本情報管理にしました。どこが良いですかね?

comment:18 in reply to: ↑ 17 Changed 10 years ago by Seasoft

tao への返信

僕もそう思ったんですが、適当な画面が無かったので、基本情報管理にしました。どこが良いですかね?

「システム設定」配下に1画面追加しても良いように思います。

comment:19 follow-up: ↓ 20 Changed 10 years ago by kajiwara

taoさん

色々ご対応ありがとうございます。

まず、優先的にこちらの対応ができればありがたいです。
○重複チェックの修正
⇒入力した管理画面ディレクトリと現在設定されている管理画面ディレクトリが重複している場合は重複チェックでエラーとせずリネームを行わないこととする。
(html以下のディレクトリが被るとまずいので、その他ディレクトリの重複チェックは引き続き行う。)
⇒要は初期の「admin」、もしくは設定変更したディレクトリが弾かれないようにする。

その他個人的な意見等
・管理画面のディレクトリ名ですが、開発時に「admin」と設定したい場合がある等、セキュリティという観点以外で、「admin」を登録したい場合と要望がありますので「admin」は設定できるようにしておく必要があると考えています。

・レンタルサーバ会社様等、さまざまな方々にとって、管理画面ディレクトリ名を調整できる機能というのは喜ばれる機能だと認識しているので、現仕様通り、インストーラにて入力変更できるというのは必要だと思います。

・インストール後の設定変更は、できれば「システム設定」配下がよいと思います。
基本情報設定は、業務の流れ的に、初めに実施すべき処理が配置されるという想定の機能です。
ですので、後から変更してもよい、というような機能ですと、「システム設定」配下が良いように思います。
(ただ、個人的にはインストール後の変更というのはなくてもよいと思います。特にカスタマイズを入れた後等、基本的にはトラブルの元になりそうなので。。。あくまでも感覚値ですが。)

以上、色々要望ばかりで申し訳ございませんが、よろしくお願いします。 併せて、足りない観点もあるかもしれませんので、ご意見もよろしくお願いします。  

comment:20 in reply to: ↑ 19 Changed 10 years ago by Seasoft

kajiwara への返信

○重複チェックの修正
⇒入力した管理画面ディレクトリと現在設定されている管理画面ディレクトリが重複している場合は重複チェックでエラーとせずリネームを行わないこととする。
(html以下のディレクトリが被るとまずいので、その他ディレクトリの重複チェックは引き続き行う。)
⇒要は初期の「admin」、もしくは設定変更したディレクトリが弾かれないようにする。

一応インストール時は弾かれないように改訂したつもりでしたが、駄目でしたかね・・・ 実装誤りかもしれません。(実装時のデバッグ操作に誤りがあったようでして、その影響かもしれません)

なお、実装時点では、管理機能から変更できることを把握しておらず、インストール機能のみの改訂となっています。

もし、当方での改訂が邪魔になるようでしたら、書き戻して続行してください。 > tao_s 様

(ただ、個人的にはインストール後の変更というのはなくてもよいと思います。特にカスタマイズを入れた後等、基本的にはトラブルの元になりそうなので。。。あくまでも感覚値ですが。)

私は、むしろインストール時はシンプルに完了して、インストール後に詳細設定の方が… とも思いましたが、まぁ微妙な線ですね。

あと、ディレクトリ変更の実行処理は、インストールと管理機能で共通化しておいた方が保守性が良いのかなとも感じましたが、この辺りは初回β版のリリース後でも良さそうですね。

comment:21 follow-up: ↓ 23 Changed 10 years ago by tao

皆様、色々ご意見ありがとうございます。 細かい仕様が固まっていなかったので、とりあえず動く事を最優先に書きましたが、概ね固まってきたと思うので以下の仕様で修正します。

  • インストール時に「/admin」も許容する。
  • インストール後の設定変更画面は「システム管理」に専用の画面を新たに作る
  • /user_data/packages/admin はリネームしない。

インストール後の変更機能については、 *インストール時はSSL証明書を設定していない状況で開発し、オープン時にSSL証明書をインストールする。 *担当者の退社等でセキュリティ確保の為に管理画面のURLを変更する。 *制限するIPアドレスが変わった 等のケースが想定されるので、あった方が良いと思います。

カスタマイズした場合でもinstall.phpを見ればディレクトリ名はわかりますし、ADMIN_DIRの定数でアクセス出来るので、そこまで混乱は無いと思います。

comment:22 Changed 10 years ago by Seasoft

/html/install/index.php の $arrWriteFile に「HTML_REALDIR . ADMIN_DIR」が追記されているようですが、これが原因だと思うのですが(未検証)、サブディレクトリや中のファイルまで書き込み可能を要求してしまいます。

comment:23 in reply to: ↑ 21 ; follow-up: ↓ 24 Changed 10 years ago by tao

tao への返信 r19996, r19997 でもろもろ対応しました。 インストール時のディレクトリチェックに/htmlの書き込み権限のチェックも追加してあります。 今思ったのですが、管理画面のURLを変更した場合は、管理者に新しい管理画面のURLをメールで通知した方が良いかもしれません。 変えた物を忘れたり、変え間違えていた場合に、管理画面にアクセス出来なくなってしまう可能性があります。

Seasoft への返信

/html/install/index.php の $arrWriteFile に「HTML_REALDIR . ADMIN_DIR」が追記されているようですが、これが原因だと思うのですが(未検証)、サブディレクトリや中のファイルまで書き込み可能を要求してしまいます。

これも対応しました。ついでに/data/classって書き込み権限要りますか?

comment:24 in reply to: ↑ 23 ; follow-up: ↓ 25 Changed 10 years ago by Seasoft

tao への返信

今思ったのですが、管理画面のURLを変更した場合は、管理者に新しい管理画面のURLをメールで通知した方が良いかもしれません。 変えた物を忘れたり、変え間違えていた場合に、管理画面にアクセス出来なくなってしまう可能性があります。

フォーラムでのやり取りの補足となりますが、親切さを突き詰めていくと「ID やパスワードも」という話にも至りそうな気がします(その、良し悪しは別として)。

まずは、マニュアルサイトに対応方法を記載するといった方向が妥当なようにも感じます。

Seasoft への返信

/html/install/index.php の $arrWriteFile に「HTML_REALDIR . ADMIN_DIR」が追記されているようですが、これが原因だと思うのですが(未検証)、サブディレクトリや中のファイルまで書き込み可能を要求してしまいます。

これも対応しました。ついでに/data/classって書き込み権限要りますか?

2.11.0-beta で不要と思われるディレクトリの権限を要求する動作があったため、r20029 で改修しました。tao 様の実装意図に反しないかご確認いただけると幸いです。

/data/class は私も疑問です。しかし、決済モジュールには権限を必要とするものがあったような。(個人的には、決済モジュール側でチェック警告して欲しいと感じますが・・・) いずれにしても、別チケットでの対応となるのかなと思います。

comment:25 in reply to: ↑ 24 ; follow-up: ↓ 26 Changed 10 years ago by tao

Seasoft への返信

2.11.0-beta で不要と思われるディレクトリの権限を要求する動作があったため、r20029 で改修しました。tao 様の実装意図に反しないかご確認いただけると幸いです。

確認しました。問題無さそうです。 ただ、インストール時の権限チェックで/data/configが抜けていたのでconfigファイルが作れなくてエラーになってしまいました。なので r20033 で/data/configの書き込み権限のチェックを追加しました。

comment:26 in reply to: ↑ 25 Changed 10 years ago by Seasoft

tao への返信

ただ、インストール時の権限チェックで/data/configが抜けていたのでconfigファイルが作れなくてエラーになってしまいました。なので r20033 で/data/configの書き込み権限のチェックを追加しました。

本件、#903 の実装漏れでした。コメント残しておきます。

comment:27 follow-up: ↓ 28 Changed 10 years ago by Seasoft

再インストール時に「SSL制限」が継承されないようです。

comment:28 in reply to: ↑ 27 Changed 10 years ago by tao

Seasoft への返信

再インストール時に「SSL制限」が継承されないようです。

確認します。

comment:29 Changed 10 years ago by habu

「IP制限」の入力チェックエラーが画面に表示されていませんでした。r20544 で修正しました。

comment:30 Changed 10 years ago by nanasess

  • Owner changed from tao to nanasess
  • Status changed from reopened to new

comment:31 Changed 10 years ago by nanasess

  • Status changed from new to assigned

comment:32 Changed 10 years ago by nanasess

  • Status changed from assigned to closed
  • Resolution set to 修正済

r20723 SSL制限, IP制限の値を再インストール時に引き継ぐよう修正しました

Note: See TracTickets for help on using tickets.