Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

htmlディレクトリ以下でのPHPの実行を抑制 #5079

Merged
merged 2 commits into from
Jul 9, 2021

Conversation

nanasess
Copy link
Contributor

@nanasess nanasess commented Jun 30, 2021

概要(Overview・Refs Issue)

Fixes #5064
html ディレクトリ以下では PHP を実行できないよう修正

方針(Policy)

  • Apache mod_phpで動作する
    • Apache event MPM + php-fpm でも動作する
  • .htaccess で設定する
  • AddType 及び AddHandler, SetHandler いずれの設定がされていても無効化される

実装に関する補足(Appendix)

  • nginx には未対応

テスト(Test)

以下の環境で、 html 以下の PHP ファイルが実行されないのを確認

  • Apache mod_php(Docker 環境)
  • Apache event MPM + php-fpm

相談(Discussion)

マイナーバージョン互換性保持のための制限事項チェックリスト

  • 既存機能の仕様変更
  • フックポイントの呼び出しタイミングの変更
  • フックポイントのパラメータの削除・データ型の変更
  • twigファイルに渡しているパラメータの削除・データ型の変更
  • Serviceクラスの公開関数の、引数の削除・データ型の変更
  • 入出力ファイル(CSVなど)のフォーマット変更

レビュワー確認項目

  • 動作確認
  • コードレビュー
  • E2E/Unit テスト確認(テストの追加・変更が必要かどうか)
  • 互換性が保持されているか
  • セキュリティ上の問題がないか

@okazy
Copy link
Contributor

okazy commented Jul 7, 2021

現状で PHP ファイルが実行されないが、text ファイルとして扱われるためソースコードが見えてしまう状態となる。

@okazy
Copy link
Contributor

okazy commented Jul 8, 2021

vendor配下と同じ制御をすることで、phpファイルの露出を防ぐ。

ec-cube/.htaccess

Lines 8 to 13 in 45c5720

<FilesMatch "(?<!\.gif|\.png|\.jpg|\.jpeg|\.css|\.ico|\.js|\.svg|\.map)$">
SetEnvIf Request_URI "/vendor/" deny_dir
Order allow,deny
Deny from env=deny_dir
Allow from all
</FilesMatch>

許可する拡張子については精査が必要(html/pdfなど)

@matsuoshi
Copy link
Contributor

vendor配下と同じ制御をすることで、phpファイルの露出を防ぐ。

ホワイトリスト形式は副作用・影響範囲が大きそうなため、いったん拡張子 .php のみを対象に 403になるようにしています

@matsuoshi matsuoshi changed the base branch from 4.1-core to 4.1 July 9, 2021 07:04
@matsuoshi matsuoshi changed the base branch from 4.1 to 4.1-core July 9, 2021 07:04
@chihiro-adachi chihiro-adachi added the enhancement 機能追加 label Jul 9, 2021
@chihiro-adachi chihiro-adachi added this to the 4.1 milestone Jul 9, 2021
@chihiro-adachi
Copy link
Contributor

ユニットテストがおちていますが、既知の問題のためマージします。

@chihiro-adachi chihiro-adachi merged commit c66b6c4 into EC-CUBE:4.1-core Jul 9, 2021
@chihiro-adachi
Copy link
Contributor

@nanasess @matsuoshi
ありがとうございます、マージしました

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement 機能追加
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants