.htaccessによるIPアクセス制限が機能しなくなった(4.0.6以降)
- Dominant language
- PHP
- Stars
- 788
- Forks
- 719
- Avg merge
- 4d 4h
- Merged PRs (30d)
- 39
Description
## 概要(Overview)
.htaccessに以下のような記述でIP制限を記述した時、4.0.5以前では機能したが4.0.6では機能しなくなった。
```
DirectoryIndex index.php index.html .ht
# IPアクセス制限の記述(カスタマイズ部。192.0.2.0は例示用)
order deny,allow
deny from all
allow from 192.0.2.0
order deny,allow
allow from all
# 4.0.6 (p1)追加部
SetEnvIf Request_URI "/vendor/" deny_dir
Order allow,deny
Deny from env=deny_dir
Allow from all
...
```
#5071
https://github.com/EC-CUBE/ec-cube/commit/e689164e09ed43deab0b139c86416cd515ceb70c#diff-270939b4fba4be968ab78e23dc0207eb893744491980a25c99a27c809a82ddabR13
4.0.6 及び 4.0.6-p1対応の中で行われたFileMatchブロックの記述による許可設定が優先されているため?
該当のFilesMatch記述を削除すると、冒頭のdeny from all -> allow from [IP] によるアクセス許可が機能するようになる 。
#5358 同様、本体というよりはWebサーバー寄りの内容で、カスタマイズ(非公開環境向けの設定)でのみ発生する状況ではあるが、
該当FilesMatch記述の追加でアクセス制御関連に影響が出ているように思われる
## 期待する内容(Expect) or 要望 (Requirement)
FilesMatch記述を他のアクセス制御に影響が出ない形に再検討できないか
もしくは
4.0.6以降でIPアドレスによるアクセス制限を行う場合の設定例をドキュメントやISSUEに残しておきたい
## 再現手順(Procedure)
.htaccessに以下のようなIP制限を行う記述を追加
```
DirectoryIndex index.php index.html .ht
order deny,allow
deny from all
allow from 192.0.2.0
...
```
- 該当FilesMatch記述がある状態だと指定IPに関わらずアクセスできる
- 該当FilesMatch記述がない状態だと指定IP以外からのアクセスを拒否する
### 環境 (environment)
- EC-CUBE: 4.0.6-p1
- Apache: 2.4.53(IUS)
- PHP: 7.4.29
## 関連情報 (Ref)
#5358
#5071
Contributor guide
Assessment
This issue has not been assessed yet.