Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .htaccess
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,17 @@ DirectoryIndex index.php index.html .ht
RewriteCond %{REQUEST_FILENAME} !^(.*)\.(gif|png|jpe?g|css|ico|js|svg|map)$ [NC]
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

# 管理画面へのBasic認証サンプル
#
# AuthType Basic
# AuthName "Please enter username and password"
# AuthUserFile /path/to/.htpasswd
# AuthGroupFile /dev/null
# require valid-user
#
# SetEnvIf Request_URI "^/admin" admin_path # ^/adminは, 管理画面URLに応じて変更してください
# <RequireAll>
# Require all granted
# Require not env admin_path
# </RequireAll>#
6 changes: 6 additions & 0 deletions src/Eccube/Controller/Admin/AdminController.php
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,11 @@ public function login(Request $request)
*/
public function index(Request $request)
{
$adminRoute = $this->eccubeConfig['eccube_admin_route'];
$is_danger_admin_url = false;
if ($adminRoute === 'admin') {
$is_danger_admin_url = true;
}
/**
* 受注状況.
*/
Expand Down Expand Up @@ -261,6 +266,7 @@ public function index(Request $request)
'countProducts' => $countProducts,
'countCustomers' => $countCustomers,
'recommendedPlugins' => $recommendedPlugins,
'is_danger_admin_url' => $is_danger_admin_url,
];
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,12 @@ public function index(Request $request, CacheUtil $cacheUtil)
return $this->redirectToRoute('admin_setting_system_security');
}

// 管理画面URLがadminの場合アラートを表示する。
$adminRoute = $this->eccubeConfig['eccube_admin_route'];
if ($adminRoute === 'admin') {
$this->addWarning('admin.setting.system.security.admin_url_warning', 'admin');
}

return [
'form' => $form->createView(),
];
Expand Down
1 change: 1 addition & 0 deletions src/Eccube/Form/Type/Install/Step3Type.php
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ public function buildForm(FormBuilderInterface $builder, array $options)
'max' => $this->eccubeConfig['eccube_id_max_len'],
]),
new Assert\Regex(['pattern' => '/\A\w+\z/']),
new Assert\NotEqualTo(['value' => 'admin', 'message' => 'form_error.admin_is_not_available']),
],
])
->add('admin_force_ssl', CheckboxType::class, [
Expand Down
2 changes: 2 additions & 0 deletions src/Eccube/Resource/locale/messages.ja.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -463,6 +463,7 @@ admin.common.move_to_confirm_title: ページを移動します
admin.common.move_to_confirm_message: '%name%に移動します。編集内容を保存してから移動しますか?'
admin.common.move_to_confirm_move_only: 保存せずに移動
admin.common.move_to_confirm_save_and_move: 保存して移動
admin.common.admin_url_warning: 管理画面URLは、セキュリティのため推測されにくいものを設定してください。「<a href="%url%">セキュリティ管理</a>」から設定できます。


# エンティティに関連するラベル
Expand Down Expand Up @@ -1191,6 +1192,7 @@ admin.setting.system.security.force_ssl: SSLを強制
admin.setting.system.security.force_ssl_description: httpsからの接続でなければSSL制限を設定できません。
admin.setting.system.security.ip_limit_invalid_ipv4: '%ip%はIPv4アドレスではありません。'
admin.setting.system.security.ip_limit_invalid_https: 'httpの場合には設定できません。'
admin.setting.system.security.admin_url_warning: 管理画面URLは、セキュリティのため推測されにくいものを設定してください。

#------------------------------------------------------------------------------------
# 設定:システム設定:ログ表示
Expand Down
1 change: 1 addition & 0 deletions src/Eccube/Resource/locale/validators.ja.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ form_error.select_is_future_or_now_date: 生年月日が不正な日付です。
form_error.float_only: 数字と小数点のみ入力できます。
form_error.same_password: 同じパスワードを入力してください。
form_error.same_email: 同じメールアドレスを入力してください。
form_error.admin_is_not_available: ディレクトリ名に「admin」を使用することはできません。

#------------------------------------------------------------------------------------
# Deplicated
Expand Down
9 changes: 9 additions & 0 deletions src/Eccube/Resource/template/admin/index.twig
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,15 @@ file that was distributed with this source code.
{% endblock javascript %}

{% block main %}
{% if is_danger_admin_url %}
<div class="alert alert-warning alert-dismissible fade show m-3" role="alert">
<i class="fa fa-warning fa-lg mr-2"></i>
<span class="font-weight-bold">{{ 'admin.common.admin_url_warning'|trans({ '%url%': url('admin_setting_system_security') })|raw }}</span>
<button class="close" type="button" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
{% endif %}
<div class="c-contentsArea__cols">
<div class="c-contentsArea__primaryCol">
<div class="c-primaryCol">
Expand Down
7 changes: 7 additions & 0 deletions tests/Eccube/Tests/Form/Type/Install/Step3TypeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -256,4 +256,11 @@ public function testInvalidAdminAllowHost_NotIp()
$this->form->submit($this->formData);
$this->assertFalse($this->form->isValid());
}

public function testInValid_AdminDir()
{
$this->formData['admin_dir'] = 'admin';
$this->form->submit($this->formData);
$this->assertFalse($this->form->isValid());
}
}