Ticket #2307 (new バグ指摘)
HTTP_URL, HTTPS_URL は $_SERVER['SERVER_NAME'] を参照する
Reported by: | nanasess | Owned by: | somebody |
---|---|---|---|
Priority: | 中 | Milestone: | バックログ |
Component: | その他 | Version: | 2.12.5 |
Keywords: | Cc: | ||
修正済み: | no |
Description (last modified by nanasess) (diff)
以下のようにすることで, 特定のホストに依存することがなくなり, www の有無でエラーになる問題も解決できるのではないだろうか?
<?php define('ROOT_URLPATH', '/'); define('HTTP_URL', 'http://' . $_SERVER['SERVER_NAME'] . ROOT_URLPATH); define('HTTPS_URL', 'https://' . $_SERVER['SERVER_NAME'] . ROOT_URLPATH);
脆弱性等の問題が無ければ採用したいです.
Change History
comment:2 follow-up: ↓ 4 Changed 11 years ago by nanasess
クロスサイト系のチェックで引っかかるかも.(スピリット・オブ 川口さん談)
scheme は, インストーラから指定できれば良さそう.
comment:3 Changed 11 years ago by kim
- Milestone changed from EC-CUBE2.13.0 to バックログ
2.13.0の対応内容を固めていくため、バックログに移動します。
comment:4 in reply to: ↑ 2 Changed 11 years ago by nanasess
クロスサイト系のチェックで引っかかるかも.(スピリット・オブ 川口さん談)
!$_SERVERSERVER_NAME? を参照するようにした環境を IBM AppScan? で検証したが、特に問題になるような脆弱性は発見されなかった。
comment:5 in reply to: ↑ description Changed 11 years ago by Seasoft
開発環境などで、同様の設定をよく使っています。
その中で、cron で値を取れずに困ったことがありました。たしか、 if (strlen($_SERVER['SERVER_NAME']) === 0) 的な方法で対処しました。
# そもそも、この辺りの値の持ち方って、ちょっとスマートじゃないですよね。ROOT_URLPATH を含まない URL を使いたい事もあるし、HTTP_URL に直書きではなく、ホスト名を抽象化とかできると良い気もします。そして、HTTP と HTTPS で別のホスト名を設定できる機能とか捨てて、シンプルにしたい。
Note: See
TracTickets for help on using
tickets.
ポート番号も付与できるようにしたいです.